websocket 连接在写入文件时关闭

websocket connection closes upon writing to file

所以我正在使用 websockets (ws) 将客户端连接到服务器。我成功地将消息发送到服务器并将其发送回 client.Problem 是当我尝试将接收到的消息写入文件时服务器断开客户端连接。消息已成功写入,但我最终断开了客户端。看起来写函数断开了我的客户端。我正在使用 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() 函数。我实际上不必触摸我的代码。这只是关于配置和设置。