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

クライアント側を実装するには?

クライアント側を実装するには

解説

クライアント側の実装方法は単純で、EventSourceオブジェクトを接続先のurlを引数にしてインスタンス化すると、サーバーイベントの受信と解析がバックグラウンドで自動的に開始されます。

サーバー側でイベントが発生すると、同じ名前のイベントがEventSourceオブジェクトでリアルタイムで発生します。クライアント側のコードでは、このイベントを、通常のイベントと同じようにハンドラを定義することで処理します。

イベントの種類はサーバー側で自由に定義・指定できますが、指定のない場合は「messageイベントとして扱われます。

なお、Server-Sent Eventsでは、ドメインを越えた通信は許可されていません。そのため、サーバー通信するコードが記述されたHTMLファイルは、接続先と同一ドメインURLに格納されている必要があります。

以下の例では、サーバーCGIから送られてくるイベントについて、type属性イベントの種別)とdata属性(イベントの内容)を画面に表示しています。この例では既定のmessageイベントと、サーバー側で定義した独自イベント「custom_event」イベントがハンドリングの対象になっています。

// infoは情報表示用のDIV要素への参照

// 接続開始
var eventSource = new EventSource("http://www.example.com/update.cgi");

// サーバー側イベントの共通ハンドラを定義
function eventLogger(event){
  info.innerHTML += "type: " + event.type + " data: " + event.data + "<br>"; 
}

// messageイベントのハンドラを設定
eventSource.onmessage = eventLogger;

// 独自イベントcustom_event処理のハンドラの登録
eventSource.addEventListener("custom_event", eventLogger,false);

既定値であるmessageイベントにはonmessageイベントハンドラが用意されていますが、それ以外のサーバーイベントに対応するクライアント側のイベントを取り扱うには、「addEventListener(event, listener, useCapture)」メソッドを使用して、イベントによって呼び出されるコールバック関数を登録する必要があります。

「addEventListener(event, listener, useCapture)」メソッドの第1引数は対象となるイベントの種別を文字列で指定します。第2引数には、イベントハンドラとなる関数の参照を指定します。最後の引数はイベントHTMLの内側の要素へ波及させたい場合にtrueを指定します。通常はfalseで構いません。

登録したイベントハンドラ内で、イベント情報を取得するには、システムから渡される引数であるeventオブジェクトを参照します。このオブジェクトはMessageEvent型のオブジェクトで、サーバ側のイベント情報が格納された属性を持っています。

名前内容
dataイベントデータ
originイベントの送信元。Server-Sent Eventsではサーバーurl
lastEventId最後に設定されたイベントid
typeEventから継承。イベントの種別

エラー時のハンドリングも、同様にonerrorイベントのハンドラで行います。エラー時のevent引数に特に追加の属性は存在しません。

関連項目



シャープのマスクシャープのマスク
シャープが製造・販売する不織布マスク。
Surface Book 3Surface Book 3
Microsoftが販売するデタッチャブルPC。
Surface Go 2Surface Go 2
Microsoftが発表した2in1 PC。

 ・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形式となっている。

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