18

node.jsとバイナリデータを含むブラウザ間でバッファを共有する方法の問題があります。トランスポート層としてのSocket.ioにはかなり満足していますが、問題は、ブラウザー用のBufferクラスの移植がないことです。とにかく見つけることができるものではありません

また、 binary.jsに出くわしましたが、トランスポート層としてsocket.ioを使用し、データメディアとしてBinary.jsを使用して、それらを組み合わせる良い方法があるかどうか疑問に思いました。私もこの質問を見ました。これは一種のトピックですが、実際には問題を解決していません。

socket.ioがバイナリサポートを追加したことは知っていますが、このトピックに関するドキュメントは見つかりませんでした。

アップデート:

binary.jsは解決策ではないようです。私が望む基本的な要件は、Bufferがノードで持っているのと同じ機能をブラウザーと共有することです。

私のニーズは2つあります。

  1. サーバーとブラウザの両方で同じ方法でバッファを処理します。

  2. バイナリデータをサポートします。

おそらく配列バッファを使用します。

編集:node.jsはV8で実行されるため、ArrayBufferを使用できます。問題が解決したようです。それでも、私が知っていることから、ノードの人々は、バッファーモジュールを作成し、作成したCバインディングでそれを管理することをお勧めします(Ryan Dahlによる講演から)。これは、ネットワーク上でバッファリングがどのように行われるかに関係していると思います。これは、ArrayBufferがサーバーとブラウザー間で共有するのに適したデータメディアではないことを意味します。

4

2 に答える 2

8

browser-bufferは、ブラウザーでNodeのBufferAPIをエミュレートします。

に裏打ちされているUint8Arrayため、ブラウザのサポートは大雑把です。

于 2012-09-18T22:33:52.417 に答える
2

JavaScriptの組み込み文字列は、内部でワイド文字を使用します。したがって、各文字位置に0から255までの値を簡単に格納できます。これはJavaScript言語の機能であるため、ブラウザでもでも同じように機能するはずnode.jsです。

charCodeAt文字列内の特定の位置の値を抽出し、fromCharCode0〜255の値を持つ文字(文字列に追加できる)を作成するために使用できます。

さまざまな文字列関数を使用して、この形式のデータを操作できます。このようなJavaScript文字列定数を使用して定数を作成できます"\x00\x12\x34\x56"

于 2012-09-19T04:15:50.500 に答える