2011-12-23 14 views
0

ブラウザ内WebSocketオブジェクトが、メッセージデータの長さが0のonmessageイベントを受け取ると、どういう意味ですか?Websocketクライアント(ブラウザ)は長さ0のメッセージを受信します - それは何ですか?

特に私はWebSocketクライアント(Hixie)としてSafariを使用しています。クライアントコードは特別なものではありません。

 

    socket = new WebSocket(host); 
    socket.onmessage = function(msg) 
    { 
     log("Received: "+msg.data.length); 
     if(msg.data.length > 0) ... processing 
    }; 

サーバはPHPに基づいており、そしてメッセージがエラーなしで送信されます。

+0

PHPでない場合は、「PHP」としてタグ付けしないでください。 –

+0

私のタグは関係するものに関するものです。 – Stan

答えて

0

これは単なるSafariの迷惑だと思う。現在リリースされているSafariのバージョンでは古いWebSocketsプロトコルバージョンが実装されていますが、実装は機能しますが、少し不足しています。長さ0のメッセージの問題はかなり甘いです。より深刻な問題は、接続を適切に閉じることができないことです(基本的には、ページが再ロードされるまで実際のソケットを閉じません)。

最近のChromeで同じテストをお試しください。そこに問題がない場合は、Safariの問題です。まだ0の長さのメッセージが表示されている場合、PHP websocketサーバーは長さ0のメッセージを送信している可能性があります。

+0

実際には、Webサーバーが不正なフレームを送信していました。この場合、Chromeはより直感的なエラーメッセージを表示しました。 – Stan

関連する問題