gpt4 book ai didi

javascript - 如何编写通过websocket发送的文件?

转载 作者:行者123 更新时间:2023-12-02 23:55:05 25 4
gpt4 key购买 nike

我正在制作一个服务器系统,其中服务器通过 websockets 将文件上传到客户端。服务器正在正确发送文件,但我不知道如何在客户端写入它。

我尝试过使用“msg”、“msg.data”和许多其他方式接收文件数据,但它总是生成一个 1kb 的文件。我还尝试在发送和转换回客户端之前将文件转换为 base64(因此消息将是文本而不是二进制文件),但没有成功。

服务器:

var ws = require("nodejs-websocket")
ws.setBinaryFragmentation(99999999999)
var fs = require('fs'),
file = process.argv[2],
data = fs.readFileSync("./map.zip");

var server = ws.createServer(function (connection) {

connection.sendBinary(data)
}).listen(1000)

客户:

var connection = new WebSocket("ws://localhost:1000")

connection.onmessage=function(msg){
var fs=require("fs")
fs.writeFileSync("./test.zip",msg.data)
}

最佳答案

我认为您应该考虑坚持使用 base64 编码方法,因为二进制文件很难调试。

将其作为 base64 发送并从客户端接收

var connection = new WebSocket("ws://localhost:1000")

connection.onmessage=function(msg){
var fs=require("fs")
let buffer = new Buffer(msg.data);
fs.writeFileSync("test.zip", buffer);
}

(这假设 msg.data 是一个 base64 编码的二进制文件)

关于javascript - 如何编写通过websocket发送的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55435273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com