Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xmpp消息边界_Xmpp - Fatal编程技术网

Xmpp消息边界

Xmpp消息边界,xmpp,Xmpp,我正在构建一个应用程序,它从系统中的不同节点接收XMPP消息并对其进行处理。此应用程序的通信量将很高。因此,我实现了工作线程来进行处理 所以,应用程序从套接字接收XMPP消息,并将其传递给工作线程,以便对接收到的消息进行xml解析。每个线程都有单独的解析器上下文 为了安全起见,我希望确保当我将消息传递给工作线程时,它是一条完整的xmpp消息。希望获得您对该方法的宝贵建议。如果不是不可能的话,在该级别上实施工作分配将非常困难。XMPP节没有长度编码,因此在解析该节之前,您不知道该节的结束位置。我还

我正在构建一个应用程序,它从系统中的不同节点接收XMPP消息并对其进行处理。此应用程序的通信量将很高。因此,我实现了工作线程来进行处理

所以,应用程序从套接字接收XMPP消息,并将其传递给工作线程,以便对接收到的消息进行xml解析。每个线程都有单独的解析器上下文


为了安全起见,我希望确保当我将消息传递给工作线程时,它是一条完整的xmpp消息。希望获得您对该方法的宝贵建议。

如果不是不可能的话,在该级别上实施工作分配将非常困难。XMPP节没有长度编码,因此在解析该节之前,您不知道该节的结束位置。我还怀疑大多数解析器是否会为在同一流套接字上操作的解析器提供单独的解析器上下文


我建议您为每个套接字设置一个worker,它解析节并将解析的节分发给您的worker线程吗?

最初我认为是这样实现的。但是放弃了它,因为xml解析似乎是一个庞大的过程,在xml解析之后将消息传递给工作线程似乎并没有节省所需的工作量。我想让接收方线程只用于接收来自套接字的消息,因此工作线程中的xml解析看起来是最佳解决方案。