jabberd2消息流

c2s:客户端连接的组件,可以多个域公用。

route:route组件,主要处理消息转发。一套服务只有一个

sm:jabberd2的核心组件,消息处理组件。每个域需要配置至少一个sm组件,一个sm组件只能对应一个域。看代码,一个域应该可以配置多个sm。


jabberd2消息流分析:

A@hqu.edu.cn 发送一条消息给 B@hqu2.edu.cn 。

1、clientA发给连接的c2s组件

2、c2s组件加了一条route信息<route xmlns='http://jabberd.jabberstudio.org/ns/component/1.0' from='c2s' to='hqu.edu.cn'>,发给route组件。

3、route组件 查找到hqu.edu.cn所属的sm(hqu.edu.cn),将消息转发给sm(hqu.edu.cn)

4、sm(hqu.edu.cn)调用模块处理消息后,修改route信息为<route xmlns='http://jabberd.jabberstudio.org/ns/component/1.0' from='hqu.edu.cn' to='hqu2.edu.cn'>,将消息发给roue

5、route组件查找到hqu2.edu.cn所属的sm(hqu2.edu.cn),将消息发给sm(hqu2.edu.cn)

6、sm(hqu2.edu.cn)调用模块处理消息后,修改route 信息为<route xmlns='http://jabberd.jabberstudio.org/ns/component/1.0' from='hqu2.edu.cn' to='c2s'>,讲消息发给route

7、route组件查找到c2s,将消息发给c2s

8、c2s组件去掉route信息,将消息发给clientB

9、clientB接收到消息。


clientA: hqu.edu.cn

   |
   |
   c2s
 |
 |
----------------------------  
| R:from='c2s' to='hqu.edu.cn'|
| W:from='c2s' to='hqu.edu.cn'|   route
|-----------------------------
|
  sm(hqu.edu.cn)
|
-----------------------------------
R:from='hqu.edu.cn' to='hqu2.edu.cn'|
W:from='hqu.edu.cn' to='hqu2.edu.cn'|
  route
------------------------------------

|

|

|
 sm(hqu2.edu.cn)
 |
----------------------------|  
R:from='hqu2.edu.cn' to='c2s'|
W:from='hqu2.edu.cn' to='c2s'|
     route
-----------------------------
|
c2s
|
clientB 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值