连接iOS和Android客户端到SockJS后端

我正在开发WebSocket消息后端使用Spring WebSockets ,它使用SockJS + STOMP协议。 之所以不使用普通的WebSockets,是因为我需要利用SockJS在Spring WebSockets中提供的安全集成以及SockJS的其他整洁function,比如房间,订阅等等。我想知道这是否是一个很好的select使移动(iOS和Android)和Web客户端应用程序可以轻松连接到后端服务器并执行消息传递。 如果是的话,那么我可以在iOS和Android上使用哪些库。

在SockJS GitHub页面上,他们还列出了可用的客户端库,但没有iOS或Android。 所以,我想知道SockJS是否值得使用。

我发现,iOS客户端Primus-Objc ( GitHub页面 )库声称,他们可以连接到native WebSockets, Socket.IO, SockJS or perhaps engine.io. 这是一个真实的声明? 而事件如果这是真的,那么图书馆的质量呢?

而事件如果可以在后面使用SockJS,那么也可以显示iOS和Android的示例代码,以便我可以在移动设备上进行概念validation。

如果SockJS对我来说不是一个好select,那么使用Socket.io + Node.js(使用JavaScript)构build我的消息应用程序会更好。 Socket.io在我看来都需要iOS的客户端库( Socket.IO家伙的官方库 )和Android( Socket.IO家伙的官方库 )。

另一个select是使用Netty-Socket.io库并手动构build每个端点,而不需要Spring Framework的帮助(我正在考虑使用它),但是我需要解决一些小小的挑战,那就是安全性。 有人实际上已经试图做到这一点 ( 同一个作者在官方的Netty-Socket.IO Github页面上提问 ),但看起来他还没有解决它的运气。

Related of "连接iOS和Android客户端到SockJS后端"

也许这个问题已经过了一年多了。 但是,因为它在searchSockJS + Android时获得第一个结果。 所以,我张贴我的答案。

根据我对最近一个项目的经验,我们能够使用STOMP客户端 – 就像这里的那个 – 从本地Android应用程序连接到Spring Websocket后端。

而从浏览器,你仍然可以使用SockJS客户端获得跨浏览器兼容性的websockets与回退。

需要注意的是,当仅使用STOMP客户端连接到本地websocket时,URL将类似于ws: // mydomain / SockJSEndpoint / websocket ,而在浏览器中使用SockJS客户端时,URL将类似于http :// mydomain / SockJSEndpoint。

SockJS可能很有趣,因为它提供了非ws传输。 在所有情况下,使用WebSocket可能都是不可能的。

OpenFL项目有一个跨平台的SockJs客户端:

https://github.com/jeremyfa/openfl-sockjs

没有testing它的工作效果,但至less对于Android来说,它使用的是来自WebView内部的JavaScript,所以应该和JavaScript一样。 再一次,目前还不清楚它与OpenFL的紧密结合,但是使用WebView和股票SockJS客户端的方法可能会被重用。