我正在从事一个涉及实时聊天(消息传递,包括群聊)的项目。

之前我曾使用过websockets,所以我开始使用spring-websockets进行此工作,并且阅读了一些有关实现它的最佳方法的文章。然后我遇到了STOMP(作为Websocket的子协议(protocol)),并且由于在 Spring 对STOMP有直接支持,因此实现我应该做的事情有点容易。

但是我的怀疑是,据我了解,STOMP和XMPP是相似的协议(protocol)(消息协议(protocol)),但是我找不到任何解释差异的解释或问题的博客,为什么有人会偏爱另一个?

如果有人解释这两种协议(protocol)有何不同,那将真的很有帮助?

谢谢。

最佳答案

作为Jabber的继任者,XMPP更加专注于即时消息传递,而不是STOMP。 XMPP是可扩展协议(protocol),可以用于其他目的,但是有很多关于IM的内置机制和实现。 STOMP提供了更通用的机制,此处的“消息”指的是广泛的含义。

假设您为项目选择了STOMP。然后,您可能需要为XMPP已经提供的某些方案(点对点,群聊)定义基本消息。

比较两种协议(protocol);

  • STOMP消息以纯文本形式(如其名称所示)携带,而XMPP则以XML构成。
  • STOMP连接可以通过TCP或WebSockets建立。 XMPP支持TCP或HTTP(WebSocket标准也是propopsed)。
  • 在Java世界中,Spring可以对话STOMP,并且非常容易实现。但是,可以通过添加第三方API(即Smack)
  • 来添加XMPP支持

    关于spring - STOMP或XMPP-通过websocket,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31108780/

    10-10 13:13