xmpp 工作过程

工作过程
(1)节点(如yb、pt)向本地服务器连接。
  ①XMPP 用户通过开启一个从客户端到服务器端的XML 流, 来申请一个在服务器上的Socket 连接。
  SEND: <stream: stream
     to=′sdpt.com′
     xmlns=′jabber: client′
     xmlns: stream=′http: //etherx.jabber.org/streams′>

  ②服务器通过开启一个从服务器到客户端的XML 流进行回复。
  RECV: <stream: stream
     from=′sdpt.com′
     id=′180763465′
     xmlns=′jabber: client′
     xmlns: stream=′http: //etherx.jabber.org/streams′>

(2)节点向本地服务器申请登录。
  ①用户询问登录服务器时需提供的信息。
  SEND: <iq id=′2′type=′get′>
     <query xmlns=′jabber: iq: auth′>
     <username>yb</username>
     </query>
     </iq>

  ②服务器回应用户, 告知用户登录所需要的信息。
  ③用户提供所需的信息。
  ④服务器响应一个空的类型为“result”的iq 元素, 表明登录成功。
  
  RECV: <iq id=′3′type=′result′/>  
  ⑤yb 用户发送当前状态给服务器, 表明其在线。
  SEND: <presence>
     <status>Online</status>
     </presence>

(3)用户获得花名册, 好友增加一个联系人( 如yb 获知朋友sd 在线) 。
(4)用户间发送消息( 如yb 向sd 发送消息) 。
  用户发送一条消息:
  SEND: <message to′sd@jabber.org′>
     <body>Where are you?</body>
     </message>
 
 
  服务器会根据XMPP 用户的会话信息加上一个源地址, 这样接收者收到消息时, 消息中已经包含了源地址。
(5)XMPP 服务器根据目标JID 中的域名查找、连接到目标服务器并进行认证(如sdpt.com 使用DNS 查找jabber.org, 连接到jabber.org 服务器上并进行认证) 。
(6)XMPP 服务器jabber.org 证实sd 连接到该服务器上, yb 被授权与sd 进行通信。
(7)数据在yb 与sd 间流动。
(8)用户退出, 退出时只需要关闭<stream>。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值