Socket.IO сердцебиение не отправлено

Я работал на сервере Socket.IO ( https://github.com/mrniko/netty-socketio), общаясь с клиентом ( https://github.com/nkzawa/socket.io-client.java), который работает на эмуляторе Android. Эмулятор размещается на компьютере, на котором работает сервер. Мне удалось создать исходное соединение от клиента к серверу и успешно отправить сообщение (клиент на сервер), но вскоре после этого сбой сердцебиения и разрыв соединения:

DEBUG [07:17:45.470] ccsocketio.transport.NamespaceClient: Клиент 157e4f73-e26d-459c-ac1c-506628b66a09 для пространства имен был отключен -ac1c-506628b66a09 отключен DEBUG [07:17:45.470] ccsocketio.transport.NamespaceClient: Клиент 157e4f73-e26d-459c-ac1c-506628b66a09 для пространства имен / android / был отключен DEBUG [07: 17: 45.4
ccsocketio.handler.ClientHead: 157e4f73-e26d-459c-ac1c-506628b66a09 удален из-за истечения времени пинга 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)

Что я делаю неправильно? Благодарю.

1 ответ

Я наконец смог решить проблему сам (могут быть и другие решения).

То, что я сделал, было:

  1. Запустите сервер на локальном хосте - так как нет необходимости, чтобы он был виден снаружи машины
  2. Подключите клиента к 10.0.2.2 - это путь к эмулятору для доступа к своему узлу localhost
Другие вопросы по тегам