Ich habe Node.js WebSocket-Server und Unity-Client mit Best HTTP asset. Ich habe JSON-Daten übertragen, aber das Parsen kostet zu viel CPU-Ressourcen. Nun, ich versuche, byte [] Nachricht von C# zu senden, wie folgt:Wie kann ich binäre Daten zwischen Node.js WebSocket Server und C# Client austauschen?
//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();
}
Aber Server empfangen Uint8Array [1, 3] und Bruchteil verloren.
Hauptfrage: Wie analysiere ich Arrays (insbesondere verschachtelte Arrays) im Binärformat und codiere sie nach Array?
Ich lese über BSON Parser in Node.js, es funktioniert viel langsamer als JSON. Ich muss die CPU-Last auf der Serverseite reduzieren, wenn ich Übertragungsdaten - das Hauptziel - kodiere/decodiere. –
Wie kommt es, dass etwas, das beim Parsen/Schreiben schneller geschrieben wurde als json, aus Ihrer Sicht langsamer ist? Wenn die Daten, die Sie hin und her austauschen, groß oder verschachtelt sind, könnte dies das Problem sein. – Gntem
JSON de/encoding wird dort wahrscheinlich in nativem Code in optimierter Weise direkt in der JS VM implementiert. Yeap, ich verlasse einige verschachtelte Arrays –