2017-10-06 173 views
1

我设法部署了WebRTC信令服务器(https://github.com/andyet/signalmaster)。剩下的只有一个问题 出于某种原因,该连接在Chrome中不起作用。铬抛出一个警告:WebRTC信令服务器在Chrome中关闭Websocket连接

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

Hovewer它工作正常在Firefox。 我设置了SSL证书。信令服务器在EC2上运行。 你有什么想法如何解决这个问题?

+0

要获取更多信息,请尝试调试socket.io并查看是否可以了解套接字被关闭的原因。您可以在服务器端使用:'DEBUG = * node app.js'或'localStorage.debug ='*';'在客户端。有关如何在此[链接](https://www.tutorialspoint.com/socket.io/socket.io_logging_and_debugging.htm)中进行调试的详细信息,请参阅。 如果您发现可疑内容,请更新您的问题,这样我们就可以更好地帮助您:)。 – elbecita

+0

@elbecita这里是一个在服务器上输出的pastebin https://pastebin.com/8YfrBsY4 和客户端输出http://prntscr.com/gvozyc – brmk

+0

没有看到任何相关的信息,这有助于确定连接关闭的原因。我回答了一些要尝试的事情。让我知道他们是否有帮助。 – elbecita

回答

0

有几件事情来尝试,可能解决这一问题:

  • 是socket.io和socket.io客户端相同的版本?如果不是,你应该将它们设置为相同的版本并尝试,因为不匹配会导致不稳定的行为。

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

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

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

  • 与心跳相关检查answer也是如此。可能是因为socket中没有任何活动,因此socket.io关闭了连接。

  • 另一件事是检查日志:当你试图建立WebRTC连接,打开一个新标签,然后转到chrome://webrtc-internals/,看看您是否可以检查是怎么回事。如果有ICE候选人,如果没有,如果有一对选定的候选人等。

我希望这些信息的一些帮助。

相关问题