STOMP或XMPP - Over websocket

Kar*_*hik 19 spring xmpp stomp spring-websocket

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

之前我曾经使用过websockets,所以我开始使用spring-websockets开始研究它,我做了一些关于实现它的最佳方法的阅读.然后我遇到了STOMP(作为websockets的子协议),因为在春天有直接支持STOMP,所以我很容易实现我应该做的事情.

但我的疑问是,就我的理解STOMP和XMPP是类似的协议(消息传递协议),但我找不到任何问题/博客,其中差异被解释,为什么有人会更喜欢一个?

如果有人解释这两个协议有何不同,那将会非常有用吗?

谢谢.

Efe*_*man 19

作为Jabber的继任者,XMPP更专注于即时消息而不是STOMP.XMPP是一种可扩展的协议,可以用于其他目的,但有很多关于IM的内置机制和实现.STOMP提供了更通用的机制,这里的"消息"指的是广泛的含义.

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

比较两个协议;

  • STOMP消息作为纯文本(如其名称所示)携带,而XMPP结构化为XML.
  • 可以通过TCP或WebSockets建立STOMP连接.XMPP支持TCP或HTTP(也提议使用 WebSocket标准).
  • 在Java世界中,Spring有能力讨论STOMP,并且它很容易实现.但是,可以通过添加第三方API(即Smack)添加XMPP支持