IT用語辞典バイナリ | さくいん | サイトマップ | ヘルプ | お気に入りに追加  
HTML5 JavaScript API
IT用語辞典バイナリ<パソコン用語・コンピュータ辞書>
コンピュータ偉人伝<人物・画像・写真・プログラミング>
コンピュータ偉人伝<人物・画像・写真・プログラミング>
コンピュータ偉人伝<人物・画像・写真・プログラミング>
拡張子辞典<ファイル・変換・変更・表示>
HTML5タグリファレンス
CSS3リファレンス
HTML5 JavaScript API
エクセル関数リファレンス
ITパスポート試験
 
  
  IT用語辞典バイナリ > HTML5 JavaScript API > WebSocketの使い方 > クライアント側で接続の切断を処理するには?
  カテゴリ別さくいん

クライアント側で接続の切断を処理するには?

クライアント側で接続の切断を処理するには

解説

サーバーとの接続の切断は「close([code],[reason])」メソッドを使用します。引数はすべて省略可能です。

第1引数のcodeはWebSocketプロトコルで決められた切断時のステータスコードを指定します。第2引数のreasonには文字列で切断理由を指定します。コード体系は以下のようになっています。

名前内容
1000通常終了
3000-3999この範囲のコードは、アプリケーション、フレームワーク、ライブラリ等によって予め定義され、標準化機関に登録されたコード
4000-4999この範囲のコードアプリケーション等のレベルで、サーバークライアントで随時取り決めて、独自に定義可能なコード

WebSocketの接続は双方向接続であるため、サーバークライアントのどちらかが明示的に、あるいは既定のタイムアウト期間に達して切断しない限り維持されます。window.onunloadイベントハンドラで「close([code],[reason])」メソッドを呼び出すことで、不要な接続が維持されるのを避けることができます。

切断時の処理はoncloseイベントハンドラを定義します。

// wsはWebSocketオブジェクト、infoは情報表示用のdiv要素

// 切断時の処理
ws.onclose = function(event){
   // 切断が完全に完了したかどうか
   if(event.wasClean){
       var closed = "完了";
   } else {
       var closed = "未完了";
   }
   info.innerHTML += "切断処理:" + closed + "<br>"; 
   info.innerHTML += "コード:" + event.code + "<br>";
   info.innerHTML += "理由:" + event.reason + "<br>";   
}

window.onunload = function(event){
    // 切断
    ws.close(4500,"切断理由");
}

oncloseイベントハンドラの引数はCloseEventオブジェクトで、通常のEventオブジェクトに追加して、「wasClean」「code」「reason」の各属性が存在します。wasClean属性イベント発生時に接続の切断が完全に完了した後であればtrueが、そうでなければfalseが格納されます。

code属性とreason属性の意味は「close([code],[reason])」メソッドの引数と同じです。

ただし、切断時のステータスコードと接続理由の指定は、SafariOperaが準拠しているバージョンの仕様の後に定義されたため、「close([code],[reason])」メソッドの引数としても、CloseEventオブジェクト属性としても、この二つのブラウザではサポートされていません。

関連項目




AQUOS RAQUOS R
シャープのスマートフォン「AQUOS」シリーズのフラグシップモデルの呼称。
LAVIE Note MobileLAVIE Note Mobile
NECが販売するモバイルノートPCのシリーズ。
Galaxy S8 PlusGalaxy S8 Plus
スマートフォン「Galaxy S8」の大画面モデル。

 ・ITパスポート試験とは
 ・試験範囲と内容
 ・サンプル問題にチャレンジ

 ・Windowsの歴史
ジョン・マッカーシー LISPの開発者
ジョン・マッカーシー
人工知能の研究分野における第一人者。
スティーブ・ジョブズ Appleの共同創設者
スティーブ・ジョブズ
「Mac」や「iPhone」を生み出した経営者。
デニス・リッチー C言語、UNIXの開発者
デニス・リッチー
C言語の設計、UNIXの開発に携わった人物。
».m4b MPEG-4オーディオファイルの拡張子。 up!
».m4r iPhoneの着メロにするAACファイルにつく拡張子。 up!
».xlsx Excel 2007で作成したファイルのデフォルトの拡張子。
».docx Word 2007の標準的な保存形式。XML形式となっている。

2017年4月24日現在
ランキング1   ICT (用語辞典)
ランキング2   セグメント (用語辞典)
ランキング3   リーンスタートアップ  (用語辞典)
ランキング4   スワイプ  (用語辞典)
ランキング5   ライトバック  (用語辞典)
ランキング6   コンテキスト  (用語辞典)
ランキング7   バリデーション  (用語辞典)
ランキング8   オムニチャネル  (用語辞典)
ランキング9   フラッグシップモデル  (用語辞典)
ランキング10   アクティビティ  (用語辞典)
RSS 0.91 RSS 1.0 RSS 2.0
IT用語辞典バイナリについてウェブリオ株式会社についてお問い合わせ先テクニカルライター募集利用規約
プライバシーポリシー著作権・商標について協力社一覧Weblio 辞書スマート翻訳英和辞典 - Weblio辞書Weblio英会話
©2012 Weblio, Inc. All rights reserved.