Android Java使用Socket.IO进行套接字通信

7

我正在编写一个消息应用程序。我的服务器是基于node.JS和socket.io构建的。客户端应该是一个安卓应用程序。然而,我似乎找不到一个良好的库,可以为我提供Java接口来使用Socket.IO(通过websockets?)。是否存在这样的库?还是我必须退而求其次选择另一种解决方案(哪一种?)?

我找到了这个cocoa库:https://github.com/fpotter/socketio-cocoa。有没有安卓的替代品?

谢谢!


可能是Java socket.io客户端的重复问题。 - user207421
1个回答

14

接受的答案有欠缺。它们是Java Socket.IO实现,需要netty,或只支持WebSocket。最终我使用轻量级WebSocket客户端编写了自己的Socket.IO客户端。

https://github.com/koush/AndroidAsync


4
嗨koush,我尝试了你的实现,但它与tornadio2 + socket.io v.9不兼容。我现在使用https://github.com/Gottox/socket.io-java-client,这也完全兼容Android。 - Eric Chen
@e_x_p 我也在我的应用程序中使用Gottox socket.io库。除了在断开连接时执行被阻塞之外,一切都正常。我没有收到任何异常... 执行只是被阻塞了... - Krishnabhadra
1
@Krishnabhadra 这可能有点晚了,但我已经提交了一个问题 https://github.com/Gottox/socket.io-java-client/issues/28。虽然作者还没有修复它,但我在自己的应用程序中修改了代码。 - Eric Chen
是的,koush的实现在v.9上无法工作,我在服务器上得到了这个错误:destroying non-socket.io upgrade客户端出现了以下错误:WebSocket.onError, Exception: java.lang.IllegalArgumentException: Value to parse may not be null. at org.apache.http.message.BasicLineParser.parseStatusLine(BasicLineParser.java:378) at com.codebutler.android_websockets.WebSocketClient.parseStatusLine(WebSocketClient.java:148) - Zennichimaro
嗨koush,我找不到在github上提问的方法。您是否有计划(或知道您项目的分支)在WebSockets连接失败时使用HTTP长轮询作为备用方案? - sunadorer
@sunadorer 不好意思,但我会接受任何拉取请求。 - koush

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接