繁体   English   中英

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

[英]Connect with iOS and Android clients to SockJS Backend

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

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

我发现iOS客户端Primus-ObjcGitHub页面 )库声称它们可以连接到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官方网页上提问 ),但看起来他还没有运气解决它。

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

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

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

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

SockJS可能很有趣,因为它提供非ws传输。 在所有情况下都可能无法使用WebSockets。

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

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

没有测试它的工作情况,但至少对Android来说,它是在WebView中使用JavaScript,所以应该与JavaScript没有区别。 同样,目前还不清楚它与OpenFL的紧密程度,但使用WebView和库存SockJS客户端的方法可能会重复使用。

我们测试了它们,Android-client( 链接 )都是由@Amr K. Ismail和

这个iOS客户端( 链接 )适用于具有STOMP的Spring-SockJS-Server。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM