WebSocketによるクライアント=サーバー通信 (3/7)
作成:2010-12-17 14:26
更新:2010-12-17 14:27
更新:2010-12-17 14:27
■WebSocketを使って通信をしてみる
では、実際にWebSocketを利用するWebページを作りましょう。「example」フォルダの中にHTMLファイルを作成し、下のソースコードを記述してください。そしてpywebsocketのサーバーを起動し、
ページが表示されると同時に、画面に「open websocket!」というアラートが表示されます。これが現れたら、無事にWebSocketサーバーに接続し、通信を開始した、ということです。もし「close websocket.」とアラートが現れたら、アクセスに失敗して接続が切られています。アドレスやサーバーの起動状態などを再度確認しましょう。
無事に接続できたら、入力フィールドに適当にテキストを書いてボタンを押してください。サーバーにそれが送られ、そのまま送り返されて「message...」というところに表示されます。ちゃんとサーバーとやり取りできていることがわかりますね。
まぁ、見た限りでは、Ajaxとの違いなどもよくわからないかも知れません。が、「ページにアクセスすると接続を開始し、いつでもボタンを押せばサーバーに送信し結果をうけとれる」ということはなんとなくわかるでしょう。
http://localhost:8800/test.htmlこのようにアドレスを指定してアクセスをしましょう。ここでは8800ポートでサーバーを起動していますので、このように「http://localhost:8800」とアドレスを指定する必要があります。
ページが表示されると同時に、画面に「open websocket!」というアラートが表示されます。これが現れたら、無事にWebSocketサーバーに接続し、通信を開始した、ということです。もし「close websocket.」とアラートが現れたら、アクセスに失敗して接続が切られています。アドレスやサーバーの起動状態などを再度確認しましょう。
無事に接続できたら、入力フィールドに適当にテキストを書いてボタンを押してください。サーバーにそれが送られ、そのまま送り返されて「message...」というところに表示されます。ちゃんとサーバーとやり取りできていることがわかりますね。
まぁ、見た限りでは、Ajaxとの違いなどもよくわからないかも知れません。が、「ページにアクセスすると接続を開始し、いつでもボタンを押せばサーバーに送信し結果をうけとれる」ということはなんとなくわかるでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title>Sample Page</title>
<script type="text/javascript">
<!--
var socket;
function init(){
socket = new WebSocket("ws://localhost:8800/echo");
socket.onopen = function(e){
alert("open websocket!");
}
socket.onmessage = function(e){
var p = document.getElementById("msg");
p.innerHTML = "送られたメッセージ:" + e.data;
}
socket.onerror = function(e){
alert("error!!");
}
socket.onclose = function(e){
alert("close websocket.");
}
}
function action(){
var str = document.getElementById("text1").value;
socket.send(str);
}
init();
//-->
</script>
</head>
<body>
<h1>サンプル</h1>
<p id="msg">message...</p>
<input type="text" id="text1">
<input type="button" onclick="action();" value="send">
</body>
</html>
※関連コンテンツ
「JavaScriptによるHTML5プログラミング入門」に戻る