Сервер сигнализации WebRTC Соединение Websocket закрыто в Chrome

Мне удалось развернуть сервер сигнализации WebRTC ( https://github.com/andyet/signalmaster). И осталась только одна проблема. По какой-то причине в Chrome не работает соединение. Chrome выдает предупреждение:

WebSocket connection to '<wss://.......:8888/socket.io/?EIO=3&transport=websocket&sid=-OpElfbpa4_ZAGS9AAAK>' failed: WebSocket is closed before the connection is established.

Но в Firefox он работает нормально. Я настроил SSL-сертификаты. Сервер сигнализации работает на EC2. У вас есть мысли, как это исправить?

1 ответ

Несколько вещей, которые можно попробовать, могут решить проблему:

  • Являются ли socket.io и socket.io-client одной и той же версией? Если нет, вы должны установить для них ту же версию и попробовать, так как несоответствие может вызвать нестабильное поведение.

  • Попытайтесь изменить интервал проверки связи и время ожидания понга, чтобы определить, связано ли это с превышением времени ожидания в тактах, потому что это занимает больше времени в Chrome. Вы можете сделать это с:

const io = require('socket.io')(http, {'pingInterval': 5000, 'pingTimeout': 10000});

(Это будет 5 секундный интервал и 10 секундный тайм-аут, не стесняйтесь подправить это и посмотреть, как это повлияет).

  • Относительно сердцебиения проверьте этот ответ тоже. Возможно, в сокете нет активности, и поэтому socket.io закрывает соединение.

  • Еще одна вещь, чтобы проверить журналы: пока вы пытаетесь установить соединение webrtc, откройте новую вкладку и перейдите в http://chrome//webrtc-internals/ и посмотрите, сможете ли вы проверить, что происходит. Если есть кандидаты ICE, если нет, если есть пара выбранных кандидатов и т. Д.

Я надеюсь, что часть этой информации поможет.

Другие вопросы по тегам