- 浏览: 1501694 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (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 1267http://sourceforge.net/projects ... -
使用 XMPP 构建一个基于 web 的通知工具
2011-03-01 10:32 1572http://www.ibm.com/developerwor ... -
Smack 3.2.0 Beta has been released
2011-02-27 20:10 1349大约2个星期前, Smack发布3.2.0 Beta版. 距离 ... -
Jingle XMPP stanza对应的XML schema
2011-02-25 20:22 2918一个典型的Jingle XMPP stanza: <i ... -
GMail add 'voice and video chat' support
2011-02-18 13:32 1952GMail增加对视频聊天的 ... -
Ident协议
2011-02-08 18:06 3387为何要安装 identd ? 曾听过有人形容 id ... -
[原创]使用Smack库实现Google Talk XMPP Extensions - Gmail Notifications (含完整的实现代码以及例子)
2011-02-07 21:39 2641注意: 这里有本人所写的完整的代码, 所以如果要转载, 请征得 ... -
贴个XMPP logs看看Pidgin是如何传输文件的
2011-02-07 20:40 2630zhangsan给lisi发送01.jpg文件. (20:2 ... -
晕, Pidgin在Windows上不支持Voice&Viedo
2011-02-07 20:03 1593从http://pidgin.im/上下载了最新版本2.7.9 ... -
[转]XMPP协议之Socket5 Bytestream文件传输
2011-02-06 21:55 5823From: http://bbs.7boo.com.cn/th ... -
GTALK的运行参数
2011-02-06 21:51 1851/nomutex 同时打开多个Talk。 /forcestar ... -
Smack Jingle库所用的JSTUN库存在的bug
2011-02-06 19:52 4493运行Smack Jingle demo时(http://fis ... -
Google Talk Call Signaling
2011-02-05 22:53 1412http://code.google.com/intl/zh- ... -
几种XMPP客户端实现Jingle语音聊天的总结
2011-02-05 20:48 30890XMPP客户端除了最基本的发送/接收消息,显示好友列表等功能外 ... -
关于ejabberd在Windows 7无法启动
2011-02-04 22:13 2282用了Openfire作为XMPP Server后,突然想试试e ... -
XMPP Client
2011-02-04 20:58 1534Spark http://www.igniterealtime ... -
XMPP Server
2011-02-04 20:50 1728Openfire http://www.igniterealt ... -
XEP-0047: In-Band Bytestreams
2011-02-04 14:34 2196In-Band Bytestreams (IBB) http: ...
相关推荐
标题 "XEP-0384:libpurple的OMEMO加密" 指涉的是一个与即时通讯安全相关的技术标准,XEP(eXtended Protocol)是XMPP(Extensible Messaging and Presence Protocol)扩展协议的缩写。XEP-0384是其中的一个特定规范...
5. **兼容性和标准化**:XEP-0035可能讨论了如何确保不同的XMPP实现之间对SSL/TLS的支持是一致的,以便于互操作性。撤销该文档可能是因为《XMPP Core》提供了更全面和统一的标准。 6. **版权和许可**:文档指出,...
* XEP-0045:群聊消息,类似互联网的中继聊天(IRC)协议,允许多人在一个虚拟的房间内聊天。 * XEP-0049:私人 XML 存储,定义了私人数据如何在服务端存储。 * XEP-0050:工作流管理,提供实体向另一个实体执行远程...
5. **XEP-0163:个人代理发现**:允许用户控制哪些信息可以被其他人看到,提供了隐私保护。 6. **XEP-0280:消息存储与推送**:实现了离线消息的存储和在线时的推送,确保消息的完整性。 7. **XEP-0363:...
支持的协议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:邮件传递收据 路线图 追踪最近使用过的贴纸 管理...
首先,我们需要理解XEP-0363的工作原理。当用户想要发送一个大文件时,客户端(这里是Emacs)会与服务器协商一个HTTP URL,然后将文件上传到这个URL。接收方收到文件元数据后,可以直接从HTTP服务器下载文件,而无需...
XEP-Jingle协议是XMPP(Extensible Messaging and Presence Protocol)扩展协议中的一部分,用于实现实时多媒体通信,如音频、视频通话以及文件共享等。它为XMPP用户提供了一种标准化的方式来建立、管理和终止多媒体...
- XEP-0065,Socks5 Bytestreams,提供了一种通过代理服务器进行数据传输的方法,允许用户在XMPP网络之外进行文件共享或其他数据交互。 - XEP-0115,Entity Capabilities,定义了如何在XMPP网络中通告和查询实体的...
PHP-Component 是 XEP-0114 和相关 XEP 的 PHP 语言实现,专门为 Lopbox ( ) 项目编写。 它旨在非常易于使用并让 PHP 程序员开发各种类型的服务:Jabber / XMPP 机器人、传输、MUC 引擎和许多其他类型的组件。 将 ...
标题 "openfire-gojara-plugin:实施XEP-0321-远程名册管理" 指的是一个专门针对Openfire服务器的Gojara插件,该插件旨在实现XEP-0321标准,即“远程名册管理”(Remote Roster Management)。XEP,扩展通讯协议...
消息碳部分支持: 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
《XEP-0035 SSL TLS Integration:安全通信的基础》 在当今的网络环境中,数据安全至关重要。XEP-0035是Extensible Messaging and Presence Protocol (XMPP)扩展协议之一,它关注的是如何在XMPP服务器之间以及...
1. 发送方通过IQ请求建立一个数据传输通道,通常使用XEP-0065中的SOCKS5 Bytestreams或XEP-0095中的Stream Initiation协议。 2. 接收方响应请求,提供接收文件所需的主机名(host)和端口号(port)。 3. 数据通过...
添加参数以不将消息存储到存档中 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文档,聊天室协议中文文档
ejabberd-mod-mam正在进行中,目前被认为是betaXEP-0313 我最近注意到XEP-0313已更新为版本3 ,该版本基本上改变了所有查询和结果语法。 到目前为止,该模块仍以XEP-0313的版本2为目标。要求埃雅伯德社区版= Erlang...
5. 多人聊天室:XEP-0045(Multi-User Chat)是XMPP中创建和管理多人聊天室的核心协议,支持管理员权限、用户角色、隐私设置和历史记录等功能。 6. 异步任务与工作流:XEP-0203(Delayed Delivery)用于处理延迟...