Java の Comet でサーバープッシュを行う(2)

nbeppu 488views 更新:2014年10月2日

Java の Comet でサーバープッシュを行う(1)のつづき。

次に、プッシュの方法については、Java 側では以下のように MessageSender にメッセージを受け渡します。

      ServletContext servletContext = ServletContextLocator.get();

      MessageSender messageSender =
        (MessageSender) servletContext
          .getAttribute("MessageSender");

      messageSender.sendMessage(recipients, jsonString);

ブラウザ側では、JavaScript で待ち受ける必要があるため、次のように Ajax で繋いで待ち受けます。

var retryCount = 0;
function join() {
    var params = {
       url: "push/",
       timeout: 10 * 60 * 1000,
       cache: false,
       contentType: "application/javascript",
       success: function(data, status) {
           // メッセージ受信
           join();
       },
       error: function(data, status) {
           if(retryCount < 10) {
               retryCount++;
               join();
           }
       }
    }
    jQuery.ajax(params);
}

これで完成です。チャットのようなリアルタイム通信もこの方法で実現することができます。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

1件のトラックバック

こちらもお役に立つかもしれません