我想给我的 Android 应用程序添加一个 服务,它在后台运行,保持 WebSocket连接(可能超过几个小时甚至几天) ,并定期向服务器发送一些数据。
现在似乎有很多用于 Java 的 WebSocket 库,我不确定我应该使用哪一个:
TooTallNate/Java-WebSocket 来自 GitHub 的描述: 用100% Java.http://java-websocket.org/编写的基本 WebSocket 客户端和服务器实现 - 这一个是连接在 我在谷歌上搜索“ android websocket”的第一个结果。但是,它有相当多的开放问题,特别是关于 SSL 连接的问题,而且目前似乎没有积极维护。
Koush/AndroidAsync 来自 GitHub 的描述: 针对 Android 的异步套接字、 http (客户端 + 服务器)、 websocket 和 socket.io 库。基于 nio,而非线程。 又有许多未解决的问题,但似乎仍在积极维护/处理中
Tyrus 计划 来自网站的描述: JSR356: 用于 WebSocket 的 JavaAPI-参考实现 这是 Oracle 制作的,不确定是否能在 Android 上运行。
Jetty WebSocket 客户端 API 来自网站的信息: Jetty 还提供了一个 Jetty WebSocket 客户端库,可以使与 WebSocket 服务器的通信更加容易。 再说一遍: 不确定它是否适用于 Android 系统。
代码调试器/android-websockets 来自 GitHub 的描述: Android 的最小 websockets (hybi13/RFC)客户端 --这个在 Schwiz/android-websocket-示例中使用,它是 StackOverflow 问题“ 如何使 Android 设备持有一个 TCP 连接到互联网没有唤醒锁?”的公认答案
大气/同步 来自 GitHub 的描述: 带备份的 WebSockets 为 Node.js、 Android 和 Java http://async-io.org
TakahikoKawasaki/nv-websocket-client 来自 GitHub 的描述: 用 Java 实现高质量的 WebSocket 客户端
正方形/ok 来自 GitHub 的描述: 一个针对 Android 和 Java 应用程序的 HTTP + SPDY 客户端 --作为 被蝎子狗提到,OkHttp 从3.5版本开始就内置了 websocket 支持。
Firebase/TubeSock 来自 GitHub 的描述: 用 Java
Autobahn | Android (GitHub) 来自网站的描述: Autobahn | Android 是一个开源的 Java/Android 网络库,由 Autobahn 项目创建,实现 WebSocket 协议和 Web 应用程序消息协议(WAMP) ,用于创建本地移动 WebSocket/WAMP 客户端。- 云冲浪者指出,这是没有支持的 wss。
此外,Android 还有一个原生的 Socket.io客户端库:
使用 socket.io Android 客户端对我来说会很方便,因为无论如何我计划在 web 前端使用 nodejs/socket.io。但是本地客户机非常年轻,并且存在一些未解决的问题。除此之外,我的理解是,Android 应用程序没有使用 socket.io 客户端库的任何好处(除了与 socket.io 1.0服务器兼容之外) ,因为 WebSocket 支持可以在客户端得到保证。
我的要求如下:
对于这些需求哪个库是正确的有什么建议吗?