1

我设法部署了 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 上运行。你有什么想法如何解决这个问题吗?

4

1 回答 1

0

尝试一些可以解决问题的方法:

  • socket.io 和 socket.io-client 是同一个版本吗?如果没有,您应该将它们设置为相同的版本并尝试,因为不匹配会导致不稳定的行为。

  • 尝试修改 ping 间隔和 pong 超时,以检测是否是由于心跳超时,因为在 Chrome 上需要更长的时间。你可以这样做:

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

(这将是 5 秒间隔和 10 秒超时,请随意调整它,看看它是否会以某种方式影响)。

  • 与心跳相关的也检查这个答案。可能是套接字中没有活动,因此 socket.io 关闭了连接。

  • 检查日志的另一件事:当您尝试建立 webrtc 连接时,打开一个新选项卡并转到chrome://webrtc-internals/看看是否可以检查发生了什么。是否有 ICE 候选人,如果没有,是否有一对被选中的候选人等。

我希望其中一些信息有所帮助。

于 2017-10-11T18:27:34.353 回答