2011-02-02 3 views
0

私はウェブソケットで遊んでいて、私のサーバがクライアントにメッセージを送るとき、メッセージの前に余分な[[] '文字があることに気付きました。これにより、JSがjsonを適切に解析できなくなります。[]文字をWebSocketメッセージの前に表示しますか?

この文字は何ですか?

+0

OKこれは実際に私が使用しているライブラリの一部であることがわかりました。何らかの理由で、著者がPHPで文字列をchr(0)とchr(255)で囲んでいます。誰もがこれのポイントは何ですか? –

+0

あなたはどのサーバーを使用していますか? – ayk

答えて

1

クライアントとサーバ間のHTTPのようなハンドシェイク、「\のX0」で始まるから各メッセージに加えてとは「\ XFF」で終わります。

WebSocketsプロトコル(03/76以降)の今後のドラフトでは、フレーミング区切り文字が先頭の長さと末尾の特殊文字を含まないフレーミングに置き換えられています。

0

これらは、先頭と末尾を区切る区切り文字です。

ベスト

ラファエル

1

は解決策を見つけた:JSによって、単に、JavaScriptの 例の置き換え機能を使用MSGは

msg = $.parseJSON(msg.data.replace('\0', '')); 

それとも、jQueryのなしwebsocket.message関数によって返された文字列であると仮定します。

msg = JSON.parse(msg.data.replace('\0', '')); 

誰かがこれが役立つことを願っています。

1

あなたの(クライアント)がこの\ x00区切り記号をあなたのmsgに見ていないのです!

通常、msgはこの\ x00 MSG \ xFFのように見えます。 \ x00と\ xFFはクライアント側でカットされるので、サーバー側で問題が発生するはずです... look、それはあなたのmsgを2回ラップすることはありません!

+0

あなたはおそらく正しいでしょう。しかしsomeonesライブラリを使ってソケットサーバーを作っているので、根本的な原因を突き止めるにはあまりにも深く掘り下げていませんでした。私はあなたの熱意が好きなので、とにかくあなたに投票しました。 –

関連する問題