Node.js中的Websocket连接在发送时closures

我尝试了许多不同的npmnetworking套接字库(WebSocket,ws,express-ws等等),并且在他们的每个人中我都有同样的问题。 当我尝试发送websocket消息时,连接closures。 我没有问题接收messeges,只发送。

下面是一个使用express和ws库进行testing的简单示例:Node.JS side:

var server = require('http').createServer() , url = require('url') , WebSocketServer = require('ws').Server , wss = new WebSocketServer({ server: server }) , express = require('express') , app = express() , port = 8080 , fs = require('fs'); app.use(function (req, res) { var index = fs.readFileSync('./interface/index.html'); res.end(index); }); wss.on('connection', function connection(ws) { var location = url.parse(ws.upgradeReq.url, true); console.log('open ws'); ws.on('message', function incoming(message) { console.log('received: %s', message); ws.send('test back'); }); ws.on('close', function () { console.log('ws connection closed.'); }) }); server.on('request', app); server.listen(port, function () { console.log('Listening on ' + server.address().port) }); 

和浏览器端(“./interface/index.html”):

 window.WebSocket = window.WebSocket || window.MozWebSocket; var port = 8080; var ip = window.location.hostname; var connection; connection = new WebSocket('ws://' + ip + ':' + port); connection.onopen = function () { // connection is opened and ready to use console.log('Web socket connection with', ip + ':' + port); //sendQueue(msgQueue); }; connection.onerror = function (error) { // an error occurred when sending/receiving data console.log('Web socket erorr with', ip + ':' + port + ':', error); }; connection.onmessage = function (message) { // try to decode json (I assume that each message from server is json) console.log("Received ws"); // handle incoming message }; connection.onclose = function (){ console.log("Web socket connection lost."); }; function sendws() { connection.send("test"); console.log("sent ws"); return false; } 
 <head> <meta charset="utf-8"> <title>Simple Web Socket test</title> <!--<meta name="description" content="Simple Web Socket">--> <meta name="author" content="Binoman"> <link rel="stylesheet" href="css/styles.css?v=1.0"> <!--[if lt IE 9]> <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script> <![endif]--> </head> <body> <button type="button" name="button" onclick="sendws()">Send</button> </body> 

我不知道为什么会这样。 我更新了Node.js到6.7。 运行在Windows 10.我感谢帮助! 谢谢!

我发现这是我的防病毒的网络保护,阻止了连接。 我为我的本地主机地址做了一个例外,现在它工作得很好。