node.jsでsocket通信
みんな大好きエコーサーバ
Install websocket server module
% npm install websocket-server
Server side
httpとwsプロトコルで、返す値を変えられる。
サーバの監視用にする、クライアント側のコードを返すなどの利用方法が考えられる。
var http = require('http'); var ws = require('websocket-server'); // http server = http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/html'}); res.end("<html><body><h1>It's Works!</h1></body></html>"); }); server.listen(10003); // WebSocket var socket = ws.createServer({'server': server}); socket.on('connection', function(conn){ conn.on('message', function(msg){ conn.send(msg); }); conn.on('close', function(){ console.log('closed'); }) });
Client side
今回は、サーバのコードとは分けてあるので、httpでアクセスできる場所に適当に置く。
ローカルファイル(file://)だと、セキュリティに引っかかりWebSocket通信ができない。
<script> var ws = new WebSocket('ws://127.0.0.1:10003/'); ws.onopen = function() { ws.send('hello world'); } ws.onmessage = function(evt) { console.log(evt.data); } ws.onclose = function() { console.log('closed'); } </script>