对于 Android 多人游戏玩家之间的通信,我使用 WebSocket 服务器和 TooTallNate's Java library在客户端启用 Android 应用程序中的 WebSocket 支持。所以明确指出,移动浏览器中的 WebSocket 支持对我来说并不重要。
不幸的是,用户报告他们遇到了连接失败或未收到消息等问题。这是移动设备上的 WebSockets 的普遍问题(阻塞的端口、防火墙、移动互联网连接)还是可能是客户端代码中的缺陷?
您是否使用过上述 WebSocket 客户端库?我刚刚发现 autobahn.ws for Android - 但我不知道是否值得从我当前的库中切换(见上文)。
WAMP 怎么样? WebSocket 技术是否不是合适的解决方案,因此我应该使用子协议(protocol) (?) WAMP?
最佳答案
在某些移动网络上,由于网络套接字连接不良,出现了这些相同的错误。通过以下方式解决它们:
(1) 移动端口:将 websocket 的服务器和客户端移动到 SSL 端口(端口 443)
(2) ping keep-alive:每隔 X 秒从客户端向服务器发送周期性的“ping”消息,并等待“pong”从服务器返回。如果服务器在 Y 秒内没有返回“pong”,则在客户端重新启动连接。
实现 (1) 将帮助您完成大部分工作。
关于android - 移动设备上的 WebSocket 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295213/