STOMP或XMPP - 通过WebSocket传输

20

我正在开展一个涉及实时聊天的项目(包括群聊)。

我之前有使用过WebSockets,所以我开始使用spring-websockets来进行开发,并且我也阅读了一些关于最佳实现方式的文章。然后我发现了STOMP(作为WebSockets的子协议),由于Spring直接支持STOMP,因此实现我想要完成的目标变得更容易了一些。

但是我有一个疑问,就是据我所知STOMP和XMPP是相似的协议(消息协议),但我找不到任何解释它们之间差异以及为什么有人会更喜欢其中一种的问题/博客?

如果有人能够解释这两种协议的区别,那将非常有帮助。

谢谢。

1个回答

20

XMPP作为Jabber的继承者,更专注于即时通讯,而非STOMP。XMPP是可扩展的协议,可以用于其他目的,但是有很多内置的机制和实现与IM相关。STOMP提供了更通用的机制,“message”在这里指的是广义含义。

假设您选择STOMP进行项目开发,则可能需要为某些场景(点对点、群聊)定义基本消息,这些消息已经由XMPP提供。

比较这两种协议:

  • STOMP消息作为纯文本传输(如其名称所示),而XMPP结构化为XML。
  • STOMP连接可以通过TCP或WebSockets建立。XMPP支持TCP或HTTP(WebSocket标准也已被提出)。
  • 在Java世界中,Spring能够使用STOMP进行通信,并且非常易于实现。然而,XMPP支持需要添加第三方API(例如Smack)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接