Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法找到解决Websocket连接关闭问题的答案 在使用node的简单Websockets示例中遇到一个问题_Javascript_Node.js_Websocket - Fatal编程技术网

Javascript 无法找到解决Websocket连接关闭问题的答案 在使用node的简单Websockets示例中遇到一个问题

Javascript 无法找到解决Websocket连接关闭问题的答案 在使用node的简单Websockets示例中遇到一个问题,javascript,node.js,websocket,Javascript,Node.js,Websocket,我最初是以此为出发点的。这是我第一次尝试,所以我开始时几乎一无所知 “握手前连接关闭”是一个非常常见的问题,对此似乎没有明确的答案。从这么多问题中,我花了一天时间尝试答案和建议代码,但没有效果,包括检查我的代理和允许localhost(没有乐趣) 这是我的代码,包括一个(不完整的)前端(我在本地目录中使用了npm install websocket,没有使用socket.io,尽管我愿意尝试,但我还是希望先让它工作起来): server.js “严格使用”; 让http=require('htt

我最初是以此为出发点的。这是我第一次尝试,所以我开始时几乎一无所知

“握手前连接关闭”是一个非常常见的问题,对此似乎没有明确的答案。从这么多问题中,我花了一天时间尝试答案和建议代码,但没有效果,包括检查我的代理和允许localhost(没有乐趣)

这是我的代码,包括一个(不完整的)前端(我在本地目录中使用了
npm install websocket
,没有使用socket.io,尽管我愿意尝试,但我还是希望先让它工作起来):

server.js
“严格使用”;
让http=require('http');
设fs=require('fs');
让server=http.createServer(函数(请求、响应){});
常数端口=8080;
fs.readFile('client/index.html',函数(err,html){
如果(错误)抛出错误;
http.createServer(函数(请求、响应){
writeHeader(200,{“内容类型”:“text/html”});
response.write(html);
response.end();
log(`${(new Date())}服务器正在侦听端口${port}`);
}).监听(端口);
});
让WebSocketServer=require('websocket').server;
让wsServer=newwebsocketserver({
httpServer:server
});
wsServer.on('request',函数(r){
//在连接上运行
让连接=r.accept('echo-protocol',r.origin);
让计数=0;
让客户端={};
//此客户端的特定id&增量计数
设id=count++;
//存储用于循环和联系所有客户端的连接方法
客户端[id]=连接;
log(`${(new Date())}已接受连接[${id}]`);
connection.on('message',函数(message){
//发送给我们的字符串消息
让msgString=message.utf8Data;
//循环遍历所有客户端
对于(让我进入客户){
//将消息与消息一起发送到客户端
客户端[i].sendUTF(msgString);
}
});
connection.on('close',函数(原因代码,描述){
删除客户端[id];
log(`${(new Date())}对等${connection.remoteAddress}已断开连接。`);
});
});
index.html

你好,Web套接字
“严格使用”;
让ws=newwebsocket('ws://localhost:8080','echo协议');
函数sendMessage(){
console.log(ws);
让message=document.getElementById('message').value;
控制台日志(消息);
发送(消息);
}
ws.addEventListener('message',函数(e){
//数据是正在发回的消息
设msg=e.data;
//将消息附加到DOM
document.getElementById(“chatlog”).innerHTML+=`
${msg}`; });
什么是
.utf8Data
?除了描述性名称之外,我不知道,但假设是WebSocket节点模块在此上下文中处理UTF-8的方式(如这里的示例所示):