WebSocketプロトコルのバージョン変更

家のマシンから自分が作ったWebSocketサービスに接続出来なくなったので、少し調べてみたら、
Chrome14からはWebSocketプロトコルのバージョンがdraft10になっていた為でした。
Chrome13まではdraft76で、draft10とは互換性が無いとの事。

使用しているPHPWebSocketはまだ対応していないようですが、下記に関して対応する必要があります。

  $status = '101 Web Socket Protocol Handshake';
  if (array_key_exists('Sec-WebSocket-Key1', $headers)) {
    // draft-76
    $def_header = array(
    'Sec-WebSocket-Origin' => $origin,
    'Sec-WebSocket-Location' => "ws://{$host}{$path}"
    );
    $digest = $this->securityDigest($headers['Sec-WebSocket-Key1'], $headers['S    ec-WebSocket-Key2'], $key3);
  } else {
    // draft-75
    $def_header = array(
    'WebSocket-Origin' => $origin,
    'WebSocket-Location' => "ws://{$host}{$path}"
    );
    $digest = '';
  }

もう少し調べたいところですが、ちょっと時間がないので、、少し落ち着いてから調べます。

こちらに詳しく書かれていました。

HTML5入門

入門 HTML5を読み進めています。今まで漠然と理解していた事が、詳細に説明されています。
まだ読み途中ですが、メモ書き程度に残します。

HTML5のサポート
HTML5はひとつの大きなものではなく、個別の機能が集まったものである為、「HTML5のサポート」という言葉は意味をなさない。例えば、Canvasやビデオといった新機能がサポートされているかどうかは、機能毎に異なるということ。

新機能の内、注目する機能は以下である。

     

  1. Canvas
  2. 解像度に依存するビットマップ描画機能で、グラフ・ゲームのグラフィックスやビジュアル画像を表示する
     

  3. video
  4. QuickTimeやFlashは不要となる。HTML5ビデオでは、全てのブラウザでサポートされているコーデックは存在しない。最終的には2種類に絞り込める。MAC系のh264, その他のOggである。
    GoogleによるChrome次期バージョンからのH264の非サポートは、コーデックを巡る主導権争いの1つである。
     

  5. ローカルストレージ
  6. 従来のクッキーは容量制限があるが、HTML5ストレージはより大きな情報量を扱えるようになる。ローカルストレージのセキュリティだが、コンピュータに物理的にアクセス出来てしまった場合は読み取られる。しかし、ブラウザの中では、自身が保存した値を読んだり変更は可能だが、別サイトが保存した値へのアクセスは出来ない。同一生成元制限(SOP)という。
     

  7. Web Workers
  8. ブラウザがJavaScriptをバックグラウンドで動作させるための標準的な方法を提供する。同時に動作する複数のスレッドを生成可能となる。
     

  9. オフラインWebアプリケーション
  10. 文字通り、オフラインで動くアプリケーションで、オンライン状態に戻った際は、オフライン時に行われた処理(例えば、変更など)をサーバ側へアップする。
     

  11. Geolocation
  12. 該当者(例えば、自分)が、世界のどこにいるのかを検出する機能で、その情報を他人と共有出来る。
     

  13. inputタイプ
  14. 従来のフォームのinputタイプに定義が多く追加された。
     

  15. プレースフォルダ
  16. 入力フィールドのプレースホルダを設定出来る。プレースホルダとは、フィールドにヘルプ文のように表示される文字の事。
     

  17. マイクロデータ
  18. Webページに意味付けを追加する為の標準的な方法であるが、独自フォーマット定義も可能。

個々の機能については、また読み進めてから検証していくこととします。