Xmpp 消息边界
Posted
技术标签:
【中文标题】Xmpp 消息边界【英文标题】:Xmpp message boundary 【发布时间】:2014-05-13 04:24:20 【问题描述】:我正在构建一个应用程序,它从系统中的不同节点接收 XMPP 消息并对其进行处理。此应用程序的流量将很高。所以我已经实现了工作线程来进行处理。
因此应用程序从套接字接收 XMPP 消息并将其传递给工作线程以对接收到的消息进行 xml 解析。每个线程都有单独的解析器上下文。
为了更安全,我想确保当我将消息传递给工作线程时,它是一条完整的 xmpp 消息。希望得到您对该方法的宝贵建议。
【问题讨论】:
【参考方案1】:在该级别上实施工作分配即使不是不可能,也很困难。 XMPP 节没有长度编码,因此在解析之前您不知道该节的结束位置。我也怀疑大多数解析器是否会为在同一个流套接字上运行的解析器提供单独的解析器上下文。
我是否可以建议您为每个套接字设置一个工作线程,解析节并将解析的节分发到您的工作线程?
【讨论】:
最初我想以这种方式实现。但是放弃了它,因为 xml 解析似乎是一个庞大的过程,并且在 xml 解析后将消息传递给工作线程似乎并没有节省所需的工作量。我想保留接收线程仅用于从套接字接收消息,因此工作线程中的 xml 解析正在寻找最佳解决方案。以上是关于Xmpp 消息边界的主要内容,如果未能解决你的问题,请参考以下文章