Websocket消息神秘地消失

我疯了试图找出我的系统有什么问题,它无法发送websocket消息。 我已经尝试了很多东西:

  • Chrome 32,火狐27,即10
  • 各种websocket服务器库:ws,websocket,nodejs-websocket
  • 在windows和centos上运行服务器
  • 重新安装node.js(版本0.10.26)
  • 重新安装Firefox
  • closures我的防火墙

行为总是相同的:客户端和服务器都表示他们获得连接,但是当客户端尝试发送消息时,另一个人根本就没有得到它。 有时我会在服务器上收到“Error:read ECONNRESET” – 但并非全部。 大约50%的时间只是默默地失败。 最终连接closures。

如果我添加代码从连接上的服务器发送消息,它总是会得到“错误:读取ECONNRESET”。

什么工作?

  • 在我的笔记本电脑上完全相同的代码和设置
  • 任何websocket在线代码,例如: http : //www.websocket.org/echo.html

那么什么可能导致我的本地websocket连接悄悄放下消息?

服务器:

VAR

ws = require('websocket').server var http = require('http') var server = http.createServer(function(request, response) { console.log("connection received for "+request.url) response.writeHead(404) response.end() }) server.listen(8080, function() { console.log("now listening") }) wsServer = new ws({httpServer:server, autoAcceptConnections: false}) wsServer.on('request', function(request) { console.log("got request") var connection = request.accept('a', request.origin) console.log("got connection") connection.on('message', function(message) { console.log("got message: "+message) }) connection.on("close", function() { console.log("closed") }) connection.on('error', function(e) { console.log('Error: '+e) }) }) 

输出:

got connection closed

客户:

 <script> var ws = new WebSocket('ws://localhost:8080/', 'a') ws.onopen = function() { console.log('open') ws.send('something2') } ws.onerror = function(e) { console.log(e) } ws.onmessage = function(m) { console.log(m) } ws.onclose = function() { console.log('closed') } </script> 

产量

open closed

这真让我抓狂。

Solutions Collecting From Web of "Websocket消息神秘地消失"