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

Мне удалось развернуть сигнальный сервер WebRTC (https://github.com/andyet/signalmaster). И осталась только одна проблема Почему-то не работает подключение в Хроме. 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. У вас есть мысли, как это исправить?


person brmk    schedule 06.10.2017    source источник
comment
Чтобы получить больше информации, попробуйте отладить socket.io и посмотреть, сможете ли вы понять, почему сокет закрывается. Вы можете использовать: DEBUG=* node app.js на стороне сервера или localStorage.debug = '*'; на стороне клиента. Узнайте больше об отладке по этой ссылке. Обновите свой вопрос, если обнаружите что-то подозрительное, чтобы мы могли лучше помочь :).   -  person elbecita    schedule 06.10.2017
comment
@elbecita вот pastebin с выводом на сервер pastebin.com/8YfrBsY4 и выводом клиента prntscr.com/gvozyc   -  person brmk    schedule 10.10.2017
comment
Не вижу ничего важного, что помогает определить, почему соединение закрыто. Я ответил несколькими вещами, чтобы попробовать. Дайте мне знать, если кто-то из них помог.   -  person elbecita    schedule 11.10.2017


Ответы (1)


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

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

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

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

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

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

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

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

person elbecita    schedule 11.10.2017