websocketd - Bashスクリプトだけで使えるWebSocketサーバ
HTML5の目玉機能の一つと言えるWebSocket。使ってみたいとは思いつつもHTTPサーバとは別でサーバを立てるとなると若干の面倒さを感じてしまうのではないでしょうか。 そこで使ってみたいのがwebsocketdです。inetdくらいのカジュアルさで使えるWebSocketサーバです。 例えばこんな感じでファイルをcount.shというファイルを作成します。
#!/bin/bash
for COUNT in $(seq 1 10); do
echo $COUNT
sleep 1
done
後はポートを指定して実行するだけです。
$ websocketd --port=8080 ./count.sh
これでWebSocketサーバが立ち上がります。実際に使うHTMLファイルは次のようになります。
< !DOCTYPE html>
<pre id="log"></pre>
<script>
// helper function: log message to screen
function log(msg) {
document.getElementById('log').innerText += msg + '\n';
}
// setup websocket with callbacks
var ws = new WebSocket('ws://localhost:8080/');
ws.onopen = function() {
log('CONNECT');
};
ws.onclose = function() {
log('DISCONNECT');
};
ws.onmessage = function(event) {
log('MESSAGE: ' + event.data);
};
</script>
簡単ですよね。実際に実行するとこんな感じになります。
Webブラウザからアクセスするとこんな感じです(Developer Toolsに出力しています)。
後はWebブラウザごとにユニークなキーを渡せばチャットルームを作ったり、リアルタイムコラボレーションも容易に実現できるのではないでしょうか。 DB接続したりすると面倒そうですが、ファイルベースでWebSocketを手軽に使ってみたいという目的にはぴったりだと思います。 websocketdはWindows/Mac OSX/Linux用、BSD Licenseのオープンソース・ソフトウェアです。 joewalnes/websocketd