我有具有最佳 HTTP 资产的 Node.js WebSocket 服务器和 Unity 客户端。以前是传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) {
});
});
主要问题:如何正确解析二进制格式的数组(尤其是嵌套数组)并编码为数组?