gpt4 book ai didi

c# - 如何在 Node.js WebSocket 服务器和 C# 客户端之间交换二进制数据?

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:23 26 4
gpt4 key购买 nike

我有 Node.js WebSocket 服务器和 Unity 客户端 Best HTTP asset .我以前是转JSON数据,但是解析太耗CPU资源了。现在,我尝试按如下方式从 C# 发送 byte[] 消息:

//sending sample array - new float[] { 1.32, 3.12 }
//convert an object to a byte array
private byte[] ObjectToByteArray(Object obj)
{
if(obj == null)
return null;

BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);

return ms.ToArray();
}

但是服务器接收到 Uint8Array [1, 3] 并且小数部分丢失了。

var wss = new WebSocket.Server({ port: 8080 });
wss.binaryType = "arraybuffer";
wss.on('connection', function connection(ws) {
ws.on('message', function (message) {
});
});

主要问题:如何正确解析二进制格式的数组(尤其是嵌套数组)并编码为数组?

最佳答案

普通的二进制序列化可能成为 Web API 的瓶颈如果您的对象定义明确并且可以建模为类,我建议您使用 Protobuf .

很棒的是它是跨平台的,您可以对 NodeJS 服务器和 C# 客户端使用相同的定义。

关于c# - 如何在 Node.js WebSocket 服务器和 C# 客户端之间交换二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43356269/

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