美文网首页
openfire离线消息处理流程

openfire离线消息处理流程

作者: Ericxujun | 来源:发表于2018-09-19 10:00 被阅读0次

1.由org.jivesoftware.openfire.nio.ConnectionHandler里的public void messageReceived(IoSession session, Object message)方法接收发送方的消息

        从当前session中获取StanzaHandler的实例对象handler,并用handler的process(String stanza, XMPPPacketReader reader)方法,然后用void process(Element doc),该方法根据消息的类别(error,message,presence,iq)作 不同处理,这里是走message的处理逻辑

2.步骤1进入org.jivesoftware.openfire.net.StanzaHandler类中的protected void processMessage(Message packet)方法,该方法用来处理收到的消息包,该方法的注释说注册了接口org.jivesoftware.openfire.interceptor.PacketInterceptor

的方法会被调用---在数据包被路由之前和之后

3.步骤2中会调用org.jivesoftware.openfire.spi.PacketRouterImpl类中的void route(Message packet),该方法又调用了org.jivesoftware.openfire.MessageRouter类中的void route(Message packet),该方法的注释:执行真正的数据包路由,路由通常被认为是很快的,但是实际情况下如果需要很长时间来完成路由,为了让该方法能够迅速返回,这时需要通过另起一个线程来完成路由操作。

4.org.jivesoftware.openfire.interceptor.InterceptorManager拦截器管理器执行具体的拦截操作(拦截的处理顺序与拦截器加入的顺序相关)

5.接下去调用org.jivesoftware.openfire.spi.RoutingTableImpl类里的void routePacket(JID jid, Packet packet, boolean fromServer)

该方法的官方注释

6.最后执行路由失败的逻辑

相关文章

  • openfire离线消息处理流程

    1.由org.jivesoftware.openfire.nio.ConnectionHandler里的publi...

  • openfire 离线消息 中文乱码

    openfire离线消息中文乱码,归根道理是mysql的乱码问题,可以连接到自己的数据库查询存储的数据。 解决方案...

  • openfire升级记录

    openfire原来使用的是4.0.3版本,增加了推送离线消息插件、永久群组插件之后想做一次升级尝试,升级过程记录...

  • 客户离线消息处理

    ppmessage中支持对离线客户的消息发送。 具体操作 通过【设置-客户离线消息处理】 进入界面 注:如有疑问点...

  • 离线消息处理方案

    离线的好友怎么获取离线消息? 对于好友聊天这种点对点的传输,我们只需将离线消息存到DB中,用户上线后执行一遍离线消...

  • Android 消息循环机制详解

    “发送消息-处理消息” 是最基础的消息处理流程。在Android系统中,这一流程是通过Handler+Messag...

  • iOS 消息处理流程、消息转发流程

    我们知道将源代码转化为可执行的文件要经过三个阶段:编译、链接、运行。不同的编译语言有有所不同。 在iOS中函数的调...

  • Handler源码记录

    一、Handler流程 Handler负责发送消息和处理消息,MessageQueue作为消息队列,Message...

  • 邮件消息流程

    ppmessage可以设置邮件接收的处理流程,通过ppmessage可以收到邮件消息,通过定制消息流程能够将网页消...

  • tb任务

    一.处理中 iOS-bug修复 完整版ffmpeg编译 芝麻信用[待定] ~~离线推送 显示头像 消息列表 ~~...

网友评论

      本文标题:openfire离线消息处理流程

      本文链接:https://www.haomeiwen.com/subject/mswzgftx.html