Jetty8で作るWebSocketチャット(ブラウザ側編)
前エントリに続いてブラウザ側の実装について。
こちらは単純ですね。
WebSocket の有無を確認して、使えるなら WebSocket の URL を指定してコネクションを開く。
後は、メッセージが届いたら div ブロックを追加してメッセージ表示。送信ボタンが押されたら入力中のメッセージを送信しているだけです。
サーバ側では、カレントディレクトリをドキュメントルートにしたので、カレントディレクトリに index.html と名付けて保存します。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { // WebSocket 確認 if (!window.WebSocket && !window.MozWebSocket) { alert("WebSocket disabled!!"); return; } // WebSocket 初期化 var wsurl = "ws://"+location.host+"/ws/"; var ws = window.MozWebSocket ? new MozWebSocket(wsurl) : new WebSocket(wsurl); $(window).unload(function(){ ws.close(); ws = null }); // メッセージを受けたらそのメッセージを追加 ws.addEventListener("message",function(msg) { if (msg == null || msg.data == null) return; $("#log").append("<div class='message'>"+msg.data+"</div>"); }, false); // 送信ボタンでメッセージ送信 $("#send").click(function(e) { var text = $("#text").val(); ws.send(text); $("#text").val(""); }); }); </script> </head> <body> <div class="content"> <div id="log"></div> <div id="send_textbox"> <input type="text" id="text"></input><input type="button" id="send" value="send"></input> </div> </div> </body> </html>