読者です 読者をやめる 読者になる 読者になる

node.js+socket.ioサンプル

node.js+socket.ioの最もシンプルなサンプルです。
サーバーで受けたデータを接続しているクライアント全員に配信する、簡易チャットになってます。

server.js

//http server
var http = require('http'),
	io = require('socket.io'),
	fs = require('fs'),
	server = http.createServer(function(req, res){
		 res.writeHead(200, {'Content-Type': 'text/html'});
		 var output = fs.readFileSync('./index.html', 'utf8');
		 res.end(output);
	});

//socket server
var io = io.listen(server);
io.sockets.on('connection', function(client) {
	console.log('client connected');
	client.on('message', function(message) {
		//自分に送信
		 client.emit('message',message);
		//自分以外に送信
		 client.broadcast.emit('message',message);
	});
	client.on('disconnect', function(){
		 console.log('disconnect');
	})
});
server.listen(8080);

index.html

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>ちゃっとテスト</title>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
	<script src="/socket.io/socket.io.js"></script>
	<script>
	$(function() {
		 init();
	});
	var socket;
	function init(){
		 socket = io.connect();
		 //接続
		 socket.on('connect', function() {
			  writeMessage('CONNECT SUCCESS','#999999');
		 });
		 //データ受信ハンドラ
		 socket.on('message', function(message){
			  writeMessage(message);
		 });
		 //サーバ切断
		 socket.on('disconnect', function(message){
			  writeMessage('切断されました','#999999');
		 });
	}
	//メッセージをHTMLに書きこむ
	function writeMessage( message,color ){
		 if( !color ){ color = '#000000'; }
		 message = '<div style="color:'+color+'" class="message">'+message+'</div>'
		 $("#show").after(message);
	}
	
	//メッセージを送信する
	function submitMessage(){
		 var message = $('#message').val();
		 if( message == '' ){ return; }
		 $('#message').val('');
		 socket.emit('message',message);
	}
	</script>
</head>
<body>
	<input type="text" id="message" />
	<input type="button" value="送信" onclick="submitMessage()">
	<div>
		 <div id="show"></div>
	</div>
</body>
</html>

実行

上記2ファイルを保存して

node server.js

上記コマンドを実行

http://host_ip:8080/

にアクセス(host_idはサーバーのIPに書き換え)