我一直在运行 Socket.IO 服务器(https://github.com/mrniko/netty-socketio),与客户端(https://github.com/nkzawa/socket.io-client.java)通信在安卓模拟器上运行。模拟器托管在运行服务器的机器上。我能够创建从客户端到服务器的初始连接,并成功发送消息(客户端到服务器),但不久之后心跳失败并且连接断开:
调试 [07:17:45.470] ccsocketio.transport.NamespaceClient:命名空间的客户端 157e4f73-e26d-459c-ac1c-506628b66a09 已断开连接调试 [07:17:45.470] ccsocketio.SocketIOChannelInitializer:客户端的 sessionId:157e4f73-e26d-459c -ac1c-506628b66a09 已断开 DEBUG [07:17:45.470] ccsocketio.transport.NamespaceClient: 命名空间 /android/ 的客户端 157e4f73-e26d-459c-ac1c-506628b66a09 已断开 DEBUG [07:17:45.471]
ccsocketio.handler.ClientHead : 157e4f73-e26d-459c-ac1c-506628b66a09 由于 ping 超时而被删除 DEBUG [07:17:46.119]
ccstransport.WebSocketTransport: 客户端已经断开连接。频道关闭!
服务器代码:
Configuration serverConfig = new Configuration();
serverConfig.setHostname(MACHINE_IP);
serverConfig.setPort(8082);
serverConfig.setPingTimeout(20);
SocketIOServer server = new SocketIOServer(serverConfig);
server.addNamespace("/android/")
server.start()
客户端代码:
IO.Options options = new IO.Options();
options.transports = new String[]{"websocket"};
options.reconnectionAttempts = 5;
options.reconnectionDelay = 10000;
Socket socket = IO.socket(MACHINE_IP + ":8082/android/", options)
我究竟做错了什么?谢谢。