[英]websocket connection closes upon writing to file
所以我使用 websockets (ws) 将客户端连接到服务器。 我成功地将消息发送到服务器并将其发送回客户端。问题是当我尝试将接收到的消息写入文件时,服务器断开了客户端的连接。 消息已成功写入,但我最终断开了客户端连接。 看起来关于写入功能的东西断开了我的客户端。 我正在使用 fs.writFile(),我已经尝试过 fs.createWriteStream()。 但是,读取文件不会断开连接。
const http = require('http');
const WebSocket = require('ws')
const fs = require('fs');
let counts = [0,0]
const server = http.createServer((req,res)=>{
console.log(' Received request for ' + request.url);
});
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection',(ws)=>{
console.log("serving...")
ws.on('message',(message)=>{
console.log("Received:"+message)
if(message ==='1'){
counts[0]=parseInt(counts[0])+1
fs.writeFile('votecnts.txt',`${counts[0].toString()} ${counts[1].toString()}`,(err) =>{
if(err) throw err
})
}
else if (message==='2'){
counts[1]=parseInt(counts[1])+1
fs.writeFile('votecnts.txt',`${counts[0].toString()} ${counts[1].toString()}`,(err) =>{
if(err) throw err
})
}
else{console.log(typeof(message))}
ws.send("cand_one: "+counts[0].toString()+"\n cand_two: "+counts[1].toString())
})
ws.on('close',function(){
console.log("lost client")
})
})
所以我想通了。 我在开发时在本地主机上同时运行服务器和客户端。 因此文件目录是相同的。 后来我发现由于安全原因,不可能在客户端用 javascript 写入文件。 所以我所做的就是将服务器的 url 更改为远程机器,并且我能够使用服务器代码写入文件。 特别是上面代码中的 writeFile() 函数。 我实际上不必接触我的代码。 这只是关于配置和设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.