在某些情况下,Socket.io连接在“socket.emit()”上中断

时间:2018-02-25 11:48:58

标签: node.js sockets encoding vue.js socket.io

我正在构建一个应用程序,其中node.js作为服务器,vue.js位于前端,使用此程序包https://github.com/MetinSeylan/Vue-Socket.io

我从服务器向客户端发送大量数据(初始连接时) Node.js从mongodb加载数据。

所以在某些情况下,当我做

  

socket.emit()

连接中断(没有错误)并立即重新连接。这是一个无限循环。

我发现,这个问题曾经是由德国“变形金刚”造成的,例如“ä,ö,ü”等。我通过这样做encodeURIComponent(JSON.stringify(myDataToSend)))解决了这个问题,并在前端解码它就像这个:JSON.parse(decodeURIComponent(payload))

所以现在这不再有用了,我无法弄清楚原因。并且没有任何错误日志或我可以开始调试的东西,它只是分解并永远重新连接。

这是否会发生,因为我要发送给客户的对象太大? 我尝试将数据一个接一个地发送到较小的包中,但这并没有破坏。我希望我能找到这样的问题。

对于调试的任何建议或包装我的数据的想法都表示赞赏。

1 个答案:

答案 0 :(得分:1)

我发现这个问题导致了我的问题。

注意:我仍然不知道,为什么套接字连接在我的情况下崩溃,但我以“错误的方式”使用了包。 我做了:

Vue.use(VueSocketio, 'http://socketserver.com:1923', store);

但是那种更好的方式是

Vue.use(VueSocketio, socketio('http://socketserver.com:1923'), store);

vue-socket.io在使用字符串作为连接而没有实际的socketio实例时使用了一个非常旧版本的socket-io.client。

也许这有助于其他人