- 浏览: 1481549 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (419)
- XMPP (19)
- Android (180)
- Java (59)
- Network (4)
- HTML5 (13)
- Eclipse (9)
- SCM (23)
- C/C++ (4)
- UML (4)
- Libjingle (15)
- Tools&Softwares (29)
- Linphone (5)
- Linux&UNIX (6)
- Windows (18)
- Google (10)
- MISC (3)
- SIP (6)
- SQLite (5)
- Security (4)
- Opensource (29)
- Online (2)
- 文章 (3)
- MemoryLeak (10)
- Decompile (5)
- Ruby (1)
- Image (1)
- Bat (4)
- TTS&ASR (28)
- Multimedia (1)
- iOS (20)
- Asciiflow - ASCII Flow Diagram Tool.htm (1)
- Networking (1)
- DLNA&UPnP (2)
- Chrome (2)
- CI (1)
- SmartHome (0)
- CloudComputing (1)
- NodeJS (3)
- MachineLearning (2)
最新评论
-
bzhao:
点赞123!
Windows的adb shell中使用vi不乱码方法及AdbPutty -
wahahachuang8:
我觉得这种东西自己开发太麻烦了,就别自己捣鼓了,找个第三方,方 ...
HTML5 WebSocket 技术介绍 -
obehavior:
view.setOnTouchListenerview是什么
[转]android 一直在最前面的浮动窗口效果 -
wutenghua:
[转]android 一直在最前面的浮动窗口效果 -
zee3.lin:
Sorry~~
When I build "call ...
Step by Step about How to Build libjingle 0.4
SOCKS5 Bytestreams ("S5B")
out-of-band bytestream
Requester
The entity that starts a bytestream negotiation with a Target. [7]
Target
The entity with which the Requester is attempting to establish a bytestream.
Proxy
An entity that is willing to be a middleman for the bytestream between the Requester and the Target.
StreamHost
The system that the Target connects to and that is "hosting" the bytestream; the Streamhost can be either the Requester or a Proxy.
StreamID
A relatively unique Stream ID for this connection; this is generated by the Requester for tracking purposes and MUST be less than 128 characters in length.
* "----" ... communications over XMPP
* "____" ... communications over TCP
* "\\\\" and "////" ... communications over SOCKS 5
* "====" ... communications over the bytestream itself
Direct Connections
In this situation, the StreamHost is the Requester
1. Requester Initiates S5B Negotiation
2. the Target attempts to open a standard TCP socket on the network address of the StreamHost/Requester.
3. Target Establishes SOCKS5 Connection with StreamHost
4. StreamHost Acknowledges Connection
5. Target Notifies Requester of Bytestream
Mediated Connections
In this situation, the StreamHost is not the Requester but a Proxy, which means that the Requester needs to discover the network address of the StreamHost before sending the initiation request to the Target, needs to negotiate a connection with the StreamHost in the same way that the Target does, and needs to ask the StreamHost to activate the bytestream before it can be used.
1. Requester Initiates Negotiation
2. the Target attempts to open a standard TCP socket on the network address of the Proxy.
3. Target Establishes SOCKS5 Connection with StreamHost
4. StreamHost Acknowledges Connection
5. Target Acknowledges Bytestream
6. Requester Establishes SOCKS5 Connection with StreamHost
7. StreamHost Acknowledges Connection to Requester
8. Requester Requests Activation of Bytestream
9. Proxy Informs Requester of Activation
out-of-band bytestream
Requester
The entity that starts a bytestream negotiation with a Target. [7]
Target
The entity with which the Requester is attempting to establish a bytestream.
Proxy
An entity that is willing to be a middleman for the bytestream between the Requester and the Target.
StreamHost
The system that the Target connects to and that is "hosting" the bytestream; the Streamhost can be either the Requester or a Proxy.
StreamID
A relatively unique Stream ID for this connection; this is generated by the Requester for tracking purposes and MUST be less than 128 characters in length.
* "----" ... communications over XMPP
* "____" ... communications over TCP
* "\\\\" and "////" ... communications over SOCKS 5
* "====" ... communications over the bytestream itself
Direct Connections
In this situation, the StreamHost is the Requester
Requester Target | | | Send S5B initiation request | | -------------------------------> | | | | Open TCP socket | | <_______________________________ | | | | Request SOCKS 5 connection | | <\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | | | | Acknowledge SOCKS 5 connection | | ///////////////////////////////> | | | | Send S5B acceptance | | <------------------------------- | | | | Exchange data over S5B | | <==============================> | |
1. Requester Initiates S5B Negotiation
<iq from='requester@example.com/foo' id='hu3vax16' to='target@example.org/bar' type='set'> <query xmlns='http://jabber.org/protocol/bytestreams' sid='vxf9n471bn46'> <streamhost jid='requester@example.com/foo' host='192.168.4.1' port='5086'/> </query> </iq>
2. the Target attempts to open a standard TCP socket on the network address of the StreamHost/Requester.
3. Target Establishes SOCKS5 Connection with StreamHost
CMD = X'01' ATYP = X'03' DST.ADDR = SHA1 Hash of: (SID + Requester JID + Target JID) DST.PORT = 0
4. StreamHost Acknowledges Connection
STATUS = X'00'
5. Target Notifies Requester of Bytestream
<iq from='target@example.org/bar' id='hu3vax16' to='requester@example.com/foo' type='result'> <query xmlns='http://jabber.org/protocol/bytestreams' sid='vxf9n471bn46'> <streamhost-used jid='requester@example.com/foo'/> </query> </iq>
Mediated Connections
In this situation, the StreamHost is not the Requester but a Proxy, which means that the Requester needs to discover the network address of the StreamHost before sending the initiation request to the Target, needs to negotiate a connection with the StreamHost in the same way that the Target does, and needs to ask the StreamHost to activate the bytestream before it can be used.
1. Requester Initiates Negotiation
<iq from='requester@example.com/foo' id='npq71g53' to='target@example.org/bar' type='set'> <query xmlns='http://jabber.org/protocol/bytestreams' sid='vxf9n471bn46'> <streamhost host='24.24.24.1' jid='streamer.example.com' port='7625'/> </query> </iq>
2. the Target attempts to open a standard TCP socket on the network address of the Proxy.
3. Target Establishes SOCKS5 Connection with StreamHost
CMD = X'01' ATYP = X'03' DST.ADDR = SHA1 Hash of: (SID + Requester JID + Target JID) DST.PORT = 0
4. StreamHost Acknowledges Connection
STATUS = X'00'
5. Target Acknowledges Bytestream
<iq from='target@example.org/bar' id='npq71g53' to='requester@example.com/foo' type='result'> <query xmlns='http://jabber.org/protocol/bytestreams' sid='vxf9n471bn46'> <streamhost-used jid='streamer.example.com'/> </query> </iq>
6. Requester Establishes SOCKS5 Connection with StreamHost
CMD = X'01' ATYP = X'03' DST.ADDR = SHA1 Hash of: (SID + Requester JID + Target JID) DST.PORT = 0
7. StreamHost Acknowledges Connection to Requester
STATUS = X'00'
8. Requester Requests Activation of Bytestream
<iq from='requester@example.com/foo' id='oqx6t1c9' to='streamer.example.com' type='set'> <query xmlns='http://jabber.org/protocol/bytestreams' sid='vxf9n471bn46'> <activate>target@example.org/bar</activate> </query> </iq>
9. Proxy Informs Requester of Activation
<iq from='streamer.example.com' id='oqx6t1c9' to='requester@example.com/foo' type='result'/>
发表评论
-
Android Push Notification
2012-03-22 16:09 1229http://sourceforge.net/projects ... -
使用 XMPP 构建一个基于 web 的通知工具
2011-03-01 10:32 1532http://www.ibm.com/developerwor ... -
Smack 3.2.0 Beta has been released
2011-02-27 20:10 1316大约2个星期前, Smack发布3.2.0 Beta版. 距离 ... -
Jingle XMPP stanza对应的XML schema
2011-02-25 20:22 2875一个典型的Jingle XMPP stanza: <i ... -
GMail add 'voice and video chat' support
2011-02-18 13:32 1921GMail增加对视频聊天的 ... -
Ident协议
2011-02-08 18:06 3258为何要安装 identd ? 曾听过有人形容 id ... -
[原创]使用Smack库实现Google Talk XMPP Extensions - Gmail Notifications (含完整的实现代码以及例子)
2011-02-07 21:39 2610注意: 这里有本人所写的完整的代码, 所以如果要转载, 请征得 ... -
贴个XMPP logs看看Pidgin是如何传输文件的
2011-02-07 20:40 2566zhangsan给lisi发送01.jpg文件. (20:2 ... -
晕, Pidgin在Windows上不支持Voice&Viedo
2011-02-07 20:03 1554从http://pidgin.im/上下载了最新版本2.7.9 ... -
[转]XMPP协议之Socket5 Bytestream文件传输
2011-02-06 21:55 5756From: http://bbs.7boo.com.cn/th ... -
GTALK的运行参数
2011-02-06 21:51 1806/nomutex 同时打开多个Talk。 /forcestar ... -
Smack Jingle库所用的JSTUN库存在的bug
2011-02-06 19:52 4453运行Smack Jingle demo时(http://fis ... -
Google Talk Call Signaling
2011-02-05 22:53 1369http://code.google.com/intl/zh- ... -
几种XMPP客户端实现Jingle语音聊天的总结
2011-02-05 20:48 30812XMPP客户端除了最基本的发送/接收消息,显示好友列表等功能外 ... -
关于ejabberd在Windows 7无法启动
2011-02-04 22:13 2233用了Openfire作为XMPP Server后,突然想试试e ... -
XMPP Client
2011-02-04 20:58 1490Spark http://www.igniterealtime ... -
XMPP Server
2011-02-04 20:50 1684Openfire http://www.igniterealt ... -
XEP-0047: In-Band Bytestreams
2011-02-04 14:34 2146In-Band Bytestreams (IBB) http: ...
相关推荐
XEP-0384:libpurple的OMEMO加密。
XEP-0035: SSL/TLS Integration.pdf
支持的协议RFC-3920:核心RFC-3921:即时消息和状态XEP-0030:服务发现XEP-0128:服务发现扩展XEP-0115:实体功能XEP-0054:vcard-temp XEP-0153:基于vCard的头像XEP-0045:多用户聊天(不完全) XEP-0078:非SASL...
XEP-0054:电子名片 XEP-0153:基于vCard的头像 XEP-0085:聊天状态通知 XEP-0280:消息碳 XEP-0092:软件版本 XEP-0012:最后活动 XEP-0333:聊天标记 XEP-0184:邮件传递收据 路线图 追踪最近使用过的贴纸 管理...
jabber-http文件上传 对Emacs jabber.el的HTTP文件上传(XEP-0363)支持
PHP-Component 是 XEP-0114 和相关 XEP 的 PHP 语言实现,专门为 Lopbox ( ) 项目编写。 它旨在非常易于使用并让 PHP 程序员开发各种类型的服务:Jabber / XMPP 机器人、传输、MUC 引擎和许多其他类型的组件。 将 ...
消息碳部分支持: XEP-0030 :服务发现XEP-0313 :邮件归档管理积极致力于: XEP-0059 :结果集管理XEP-0004 :数据表单最新消息2020-10-30:添加了对XEP-0280的支持:Message Carbons 2020-10-30:添加了对XEP-0313...
XEP-0128:服务发现扩展 XEP-0115:实体功能 XEP-0054:vcard-temp XEP-0153:基于vCard的头像 XEP-0045:多用户聊天(不完全) XEP-0078:非SASL身份验证 XEP-0138:流压缩 XEP-0203:延迟交货 XEP
添加参数以不将消息存储到存档中 import nostore from 'stanza.io-no-store' ... client.use(nostore); client.sendMessage({ ... body: 'This message will not be stored into message archive', ...
xmpp 扩展协议 xep-0045 中文pdf文档,聊天室协议中文文档
XEP-Jingle协议文档,来自XEP官方网站
ejabberd-mod-mam正在进行中,目前被认为是betaXEP-0313 我最近注意到XEP-0313已更新为版本3 ,该版本基本上改变了所有查询和结果语法。 到目前为止,该模块仍以XEP-0313的版本2为目标。要求埃雅伯德社区版= Erlang...
XEP-0065 SOCKS字节流, XEP-0077 站内注册, XEP-0092 Software Version, XEP-0096 文件传输, XEP-0153 用户头像, XEP-0184 消息回执, XEP-0191 黑名单, XEP-0199 Ping, 已扩展 XEP-0045 群聊的持久化 XEP-0065 离线...
XEP-0035 SSL TLS Integration
基于FRESCALE 芯片开发的CAN BOOTLOADER代码,及官方文档
Whack 是一个 Java 库,可以轻松创建遵循 XEP-0114:Jabber 组件协议的外部组件。 作为 Openfire 的内部组件实现但不使用 Openfire 的内部 API 的组件可以移植到 Whack 并作为外部组件运行。 Whack 于 2004 年 11 ...
这允许XEP-0357兼容的客户端在ejabberd服务器上使用mod_push的内部应用服务器,或者在运行Oshiya的任何XEP-0114兼容的服务器上使用。 Oshiya是GSoC 2015项目的一部分。 请发送反馈。 ##功能Oshiya将支持以下推送...
kontalk-java-client Kontalk的独立于平台的Java客户端( )。 包括到Jabber网络的连接! 桌面客户端使用您现有的来自Kontalk帐户。 导出密钥的说明。 常见问题解答:常见问题...实施的XEP功能: XEP-0184:消息回执X
Openfire Gojara插件 实现。 CI构建状态 报告问题 问题可以报告给或通过此仓库的。
使用Strophe连接xmpp,轻松构建web即时聊天工具。...XEP-0124 提供的方法实现WebIM. 思路即使用一个javascript的xep-0124的实现,直接连接xmpp server端。 本文使用javascript端的XEP-0124的实现为Strophe的js实现。