android - 移动设备上的 WebSocket 支持

标签 android websocket multiplayer

对于 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/

相关文章:

java - 调试时 onPostExecute() 与 doInBackground() 无关

java - HTML 到文本,带有自定义链接点击监听器

Swift 4 toRaw() 更新?

java - 通过线程中的套接字进行对象输入/输出

android - 应用程序在方向更改时保存文本框状态?

android - BitmapFactory OOM 让我抓狂

AngularJS:通过 Websocket 发送身份验证 header

javascript - 使用 node.JS 和 Socket.IO 的路径和其他问题

websocket - 使用 Web 套接字向 Django channel 中的多个组发送消息

objective-c - GameCenter 邀请处理程序