2012-09-01 4 views
19

Es gibt ein Problem, wie Puffer zwischen node.js und dem Browser, der binäre Daten enthält, freigegeben werden. Ich bin ziemlich glücklich mit Socket.io als Transportschicht, aber das Problem ist, dass es keine Portierung der Buffer class für den Browser gibt. Nichts, was ich sonst finden kannFreigabe des binären Puffers zwischen Node.js-Server und Browser

Ich bin auch auf binary.js gestoßen und ich frage mich, ob es eine gute Möglichkeit gibt, sie mit dem socket.io als Transportschicht und dem Binary.js als Datenträger zu kombinieren. Ich sah auch diese question, die Art von Thema ist, aber löst nicht wirklich das Problem.

Ich weiß socket.io binäre Unterstützung hinzugefügt, aber ich habe keine Dokumentation zu diesem Thema gefunden.

Update:

Es scheint, dass binary.js nicht die Lösung sein. Die grundlegende Anforderung, die ich möchte, ist, die gleichen Fähigkeiten zu teilen, die Puffer im Knoten mit dem Browser hat.

Meine Bedürfnisse bestehen aus zwei Dingen:

  1. die Puffer in der gleichen Art und Weise Griff sowohl in Server und Browser.

  2. Unterstützung binäre Daten.

Ich werde wahrscheinlich Array Buffer verwenden.

Bearbeiten: Da node.js über V8 laufen können Sie ArrayBuffer verwenden. Es scheint, als ob das Problem gelöst ist. Nach allem, was ich weiß, haben Knotenleute entschieden, dass es eine gute Idee ist, ein Puffermodul zu erstellen und es in den von ihnen erstellten C-Bindungen zu verwalten (aus einem Vortrag von Ryan Dahl). Ich denke, das hat damit zu tun, wie die Pufferung über das Netzwerk erfolgt. Dies bedeutet, ArrayBuffer ist immer noch kein guter Datenträger zwischen Server und Browser.

+1

Ich verstehe nicht, was genau das Problem ist. Welche Funktionalität interessiert Sie genau, die es im Browser nicht gibt? –

+0

Meine Bedürfnisse bestehen aus zwei Dingen: 1. Handle den Puffer auf die gleiche Weise in Server und Browser. 2. Unterstützung binäre Daten. – qballer

+0

Verwenden Sie DataView und ArrayBuffer – Chiguireitor

Antwort

8

browser-buffer emuliert die Buffer API des Knotens im Browser.

Es ist von einem Uint8Array unterstützt, so browser support ist skizzenhaft.

+0

Dies ist die Art von Antwort, die ich suche, die Sache ist, es ist immer noch sehr instabil. – qballer

+0

Ja, es gibt sehr wenig Aktivität in dem Projekt; Es sieht so aus, als wäre es jemandes experimenteller Code. Ich würde es als einen guten Ausgangspunkt verwenden - Sie müssen den Code erweitern und verbessern. – josh3736

2

Die eingebauten Zeichenfolgen von JavaScript verwenden intern interne Zeichen. So können sie einfach einen Wert von 0 bis 255 in jeder Zeichenposition speichern. Dies ist eine JavaScript-Sprachfunktion, daher sollte es in einem Browser oder unter node.js genauso funktionieren.

Sie können charCodeAt verwenden Sie den Wert einer bestimmten Position in einem String zu extrahieren und fromCharCode einen Charakter zu schaffen, mit einem Wert von 0 bis 255

Sie die verwenden können (die Sie in einen String hinzufügen) verschiedene String-Funktionen, um Daten in dieser Form zu manipulieren. Sie können Konstanten mit JavaScript-String-Konstanten wie diesem "\x00\x12\x34\x56" erstellen.

Verwandte Themen