Stomp.js已经过时且不再维护 - 使用哪个Stomp客户端与Spring Websockets配合使用?

25
我发现令人惊讶的是,目前的 Spring WebSocket 支持文档 指导用户在客户端 JavaScript 实现中使用 stomp.js

这个项目在它的 GitHub 页面上的 ReadMe 中说:

这个项目不再维护。

如果您遇到了 bug 或需要增强功能,您可以 fork 它并根据 Apache License 2.0 修改它。

自 2014 年 12 月以来,该存储库没有进行任何代码提交,除了在 2015 年 9 月添加了上述内容到 ReadMe 中。因此,该项目在过去的 2 年里已经被放弃了。

我不确定这个存储库的 284 个 forks 中哪一个是该库的稳定且最新版本,并且从 Google 的搜索结果来看似乎没有可行的替代方案。

请问有人能推荐一个稳定的替代方案吗?

理想情况下,我希望 Spring 团队能够提供一些关于与他们的 STOMP 支持配合使用的正确客户端库的方向。


你最终解决了这个问题吗? - Slipfish
@Slipfish 没有,我希望Spring webscoket团队的某个人会在这里回复,因为他们似乎说他们的支持现在是基于Stackoverflow的。 - rikoe
@Slipfish 请查看下面的答案,Spring Websocket文档现在指向https://github.com/JSteunou/webstomp-client作为要使用的库。 - rikoe
该项目现在也已经存档在Github上了。Spring文档似乎仍然链接到它。 - Nexonus
3个回答

15

我也一直在想这个问题,但是没有找到任何确切的答案。我找到的最接近的是 webstomp-client:

https://github.com/JSteunou/webstomp-client

它声称是原始的stomp.js的一个分支,看起来它正在积极维护。


与问题无关,但与我最近所做的工作有关,我还发现了一个实现 RxJS 客户端的 webstomp-client 分支; 在这里发布一些链接,以防将来有人用得到。

https://github.com/Clanrat/webstomp-client

https://github.com/Clanrat/webstomp-client/blob/master/src/rxclient.js


谢谢。仅供将来参考。 - Amir
1
Spring Websocket文档现已更新,推荐使用https://github.com/JSteunou/webstomp-client作为最活跃维护的实现。 - rikoe
2
此刻,webstomp-client 的 GitHub 存储库已被归档。仍在寻找一个适合生产环境的好选择。 - It's K

7

正如其他人所提到的,webstomp-clientspring文档中已经被归档,而这个答案中提到的一个似乎在stomp客户端实现中列出。 - Sidharth Bajpai

2

https://github.com/stomp-js/stompjs的维护者似乎已经分叉了自己的东西(可能是Deepak Kumar)。其中,在这个版本和SocksJS中,“自动重连”在Safari上实际上并没有起作用。

var ws = new SockJS(url);
var client = Stomp.over(ws);

client.reconnect_delay = 5000;

因此,对我来说很难找到“合法”且得到适当支持的版本,因为这个原因。但是,我在原作者网站上找到了这个链接:https://github.com/jmesnil/stomp-websocket/issues/121,在这里原作者Jeff Mesnil正在与Rossen Stoyanchev(任何了解Spring的人都知道他是谁)交谈,并似乎已经祝福了Jérôme Steunou维护的分支,该分支位于此处:https://github.com/JSteunou/webstomp-client。因此,我想我会使用这个版本。
希望这有助于其他人避免在各种非官方分支中迷失(就像我一样),并得到非常不一致的结果。

当使用SockJS时,您需要传递一个工厂函数来返回一个socket实例以使重新连接工作。将您的代码更改为client = Stomp.over(() => new SockJS(url));。请参见https://stomp-js.github.io/api-docs/latest/classes/Stomp.html#over - Deepak Kumar
如果您使用我上面概述的真正的分支,就不需要这样做。似乎只有您的分支需要这样做。 - Gary Tessman

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