libro
www.tuyano.com
JavaScriptによるHTML5プログラミング入門

WebSocketによるクライアント=サーバー通信 (2/7)

作成:2010-12-17 14:03
更新:2010-12-17 14:13

■Pythonと、pywebsocket

では、WebSocketを利用するための準備を整えましょう。WebSocketを利用するためには、専用のサーバーが必要になります。これは既にいくつか登場しているのですが、インストールや設定、使い方などが難しかったりすることが多いのです。

特に、WebSocketを利用するためにはサーバー側にもプログラムを用意しないといけないため、そちら側のプログラムを簡単に作れないと使いこなせません。そうしたもろもろのことを検討した上で、ここでは「pywebsocket」というものを使ってみることにします。

このpywebsocketは、スクリプト言語「Python」を使って作られたWebSocketサーバーです。これは現在、Google Codeサイトにてプロジェクトが公開されています。
http://code.google.com/p/pywebsocket/
まずは、ここにアクセスし、「download」リンクから最新のバージョンをダウンロードして下さい。「mod_pywebsocket-バージョン.tar.gz」といった圧縮ファイルで配布されています。これを展開し、適当なところにはいちしておきます。

このpywebsocketは、Apache HTTP ServerPythonを使えるようにするための「mod_python」と呼ばれる拡張機能を利用してWebSocketサーバーの機能を実現するためのものです。ただし、ちょっと動かすだけなら、Apacheサーバーもmod_pythonも必要ありません。pywebsocketだけでサーバーを起動してプログラムを動かすことができます。

ただし、そのためにはPythonがインストールされていないといけません。これは、以下のアドレスから入手してください。
http://www.python.org/download/releases/
ここで、今までのバージョンがひと通り用意されています。注意して欲しいのは、「インストールするのは、2.5.xPython」という点です。pywebsocketは、Python 2.5を使っているのです。Pythonは、バージョンによってかなり内容が変わるため、それより古いものでも、新しいものでも問題を起こす可能性があります。

さて、pywebsocketは、スタンドアロンで実行するためのスクリプトを持っています。展開したフォルダを開くと「src」フォルダがあり、その中に「mod_pywebsocket」というフォルダが見つかるはずです。これが、pywebsocketの本体になります。この中にある「standalone.py」というファイルを実行すると、WebSocketサーバーが起動します。起動は、コマンドプロンプトを開き、以下のように実行をします。
cd pywebsocketのフォルダパス
python src/mod_pywebsocket/standalone.py
        -p ポート番号 -d スクリプトフォルダのパス
2~3行目部分は、1行につなげて書いてください。(……standalone.py -p ポート番号…… という具合につなげる)。これでpywebsocketのサーバーが起動します。

といっても、まだサーバー側に全く何のプログラムもないので、何かスクリプトを用意しましょう。pywebsocketには、簡単なサンプル(メッセージを送信すると、そのままメッセージが返ってくる、というだけのもの)があるので、これを利用しましょう。

python src/mod_pywebsocket/standalone.py
        -p 8800 -d src/example
このようにしてスクリプトを実行してください。「example」フォルダの中に「echo_wsh.py」というスクリプトファイルがあります。これがサンプルのスクリプトです。このスクリプトを、ここでは8800版ポートで実行することにします。

今回は、このexampleフォルダを指定してサーバーを起動しますので、サンプルで作るHTMLページも、自分で作るスクリプトも、この「example」フォルダの中に保存をします。もし、別にフォルダを用意して使いたければ、サーバーを起動する命令にある「-d」のフォルダパスを変更してください。



※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。


※関連コンテンツ

「JavaScriptによるHTML5プログラミング入門」に戻る