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

Mak*_*sim 31 java spring android ios spring-websocket

我正在使用Spring WebSockets开发WebSocket消息传递后端,它使用SockJS + STOMP协议.不使用普通WebSockets的原因是因为我需要利用SockJS在Spring WebSockets中提供的安全集成以及SockJS的其他整洁功能,例如房间,订阅等.我想知道这是否是一个很好的选择这样移动(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的示例代码,以便我可以在移动设备上执行概念验证?

如果SockJS对我来说不是一个好选择,那么用Socket.io + Node.js构建我的消息传递应用程序会更好(使用JavaScript).在我看来,Socket.io有所有需要的iOS客户端库(Socket.IO的官方库)和Android(Socket.IO的官方库).

另一种选择可以是使用Netty-Socket.io库并手动构建每个端点,而无需Spring Framework(我正在考虑使用)的任何帮助,但是我需要解决的是小问题,即安全问题.实际上有人已经尝试过这样做(同一位作者在Netty-Socket.IO Github官方网页上提问),但看起来他还没有运气解决它.

Amr*_*ail 13

也许这个问题已经过了一年多了.但是,因为它在Googling for SockJS + Android时获得了第一个结果.所以,我发布了我的答案.

根据我最近参与的项目的经验,我们能够使用STOMP客户端 - 就像这里的客户端 - 从原生Android应用程序连接到Spring Websocket后端.

从浏览器中,您仍然可以使用SockJS客户端来获得跨浏览器与websockets的兼容性.

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

  • 感谢您分享这一点 ! (2认同)