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

时间:2015-08-04 18:59:06

标签: java android ios spring spring-websocket

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

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

我发现对于iOS客户端GitHub pageofficial library by Socket.IO guys)库声称他们可以连接到native WebSockets, Socket.IO, SockJS or perhaps engine.io.是真的声明吗?如果这是真的,那该图书馆的质量怎么样?

如果可以在背面使用SockJS,那么是否可以显示iOS和Android的示例代码,以便我可以在移动设备上执行概念验证?

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

另一种选择可以是使用Somebody actually already tried to do it库并手动构建每个端点,而无需Spring Framework(我正在考虑使用)的任何帮助,但是我需要进行小的挑战。解决,那就是安全。 the same author asking question on the official Netty-Socket.IO Github page({{3}})但看起来他还没有运气解决它。

4 个答案:

答案 0 :(得分:12)

自提出这个问题以来,可能还有一年多的时间。但是,因为它在Googling for SockJS + Android时获得了第一个结果。所以,我发布了我的答案。

根据我最近参与的项目的经验,我们能够使用STOMP客户端 - like the one here - 从本机Android应用程序连接到Spring Websocket后端。

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

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

答案 1 :(得分:5)

答案 2 :(得分:0)

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

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

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

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

答案 3 :(得分:0)

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

提供的

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