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

Server-Sent Eventsのサンプルコード

サンプル

Server-Sent Eventsでは、ドメインを越えた通信は許可されていません。そのため、以下のサンプルHTMLファイルCGIは、同一ドメインURLに格納されている必要があります。HTMLファイルをローカルファイルとして実行することはできません。

サンプル サーバー側(Perl)

このサンプルを試すにはサーバー側とクライアント側の準備が必要です。
まず、PerlWindowsの場合はActive Perl)がウェブサーバーインストールされていない場合は、インストールしてください。
以下のソースをCGIが実行可能なディレクトリに、適切な権限を付与して、sse_test.cgiという名前で配置してください。

1行目の「!#」以降は、Perlの実行ファイルインストールされた場所になります(このサンプルの場合、c:\perl\bin\perl.exe)。このパスは実行環境に合わせて変更する必要があります。

#!c:\perl\bin\perl.exe

use strict;
use CGI;

my $cgi = CGI->new;

#ヘッダーの設定
print $cgi->header(
    -type => "text/event-stream"
    ,-charset => "utf-8"
);

#前回の接続の最後のイベントIDを取得
my $id = $cgi->http('Last-Event-ID')  + 0;

#続きのイベントIDから開始
$id = $id + 1;
print "event:ping\n";
my $time = localtime();
print "data: $time\n";
print "id:$id\n";
print "retry:1000\n";
print "\n";

#eventフィールドを省略するとmessageイベント
$id = $id + 1;
print "data: データ\n";
print "id:$id\n";
print "retry:1000\n";
print "\n";

サンプル クライアント側

16行目でサーバー側のスクリプトのURLを"http://localhost/cgi/sse_test.cgi"のように指定していますが、このURLは実行環境に合わせて変更してください。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Server-Sent Events サンプル (IE未実装)</title>
</head>
<body>
<p>サーバーから送られてきたイベントのデータを取得して表示します</p>
<ul id="info">
</ul>

  <script type="text/javascript">
        var info = document.getElementById("info");
        
        // クライアントをインスタンス化
        var evtSource = new EventSource("http://localhost/cgi/sse_test.cgi");
        
        // イベントに対するコールバック関数
        function SrvHandler(event){
            // イベント種別を取得
            var type = document.createElement("li");
            type.innerHTML = "イベント種別:" + event.type;
            info.appendChild(type);
            
            // イベントデータを取得
            var data = document.createElement("li");
            data.innerHTML = "イベントデータ:" + event.data;
            info.appendChild(data);
            
            // 最新のイベントIDを取得
            var lastEventId = document.createElement("li");
            lastEventId.innerHTML = "最後にサーバーから送られたイベントID:" + event.lastEventId;
            info.appendChild(lastEventId);
            
            info.appendChild(document.createElement("hr"));
            
            // 接続を切断。
            if(event.lastEventId > 10){
                evtSource.close();
            }
        }        
        
        // messageイベントとpingイベントにコールバックを設定
        evtSource.addEventListener("message",SrvHandler, false);
        evtSource.addEventListener("ping",SrvHandler, false);
        
  </script>
</body>
</html>

関連項目

関連する項目はありません)




AQUOS R SH-03JAQUOS R SH-03J
NTTドコモが販売するスマートフォンの端末。
ideapad Miix 320ideapad Miix 320
レノボが発売したコンバチブルタブレットPC。
Ideapad 320Ideapad 320
レノボが発売したノート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形式となっている。

2017年7月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.