Сервер сигнализации 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, если нет, если есть пара выбранных кандидатов и т. Д.
Я надеюсь, что часть этой информации поможет.