Socket.IO を使ったときのメモ

Socket.IO を使ったときのメモ
ディレクトリの中に app.js を作成
コードは
var io= require(‘socket.io’);
var express = require(‘express’);
var http = require(‘htt@’);
var app = express();
app.use(express.atatci(__dirname + ‘/public’);
var server = http.createServer(app).listen(8080);
var io=io.listen(server);
io.sockets.on(‘connection’, function(socket){
socket.on(‘msg’,function(msg){
socket.emit(‘msg’,msg);
socket.broadcast.emit(‘msg’,msg);
});
});
では解説
require で必要モジュール読み込み
Express サーバーを生成し
その上にSocket.IOサーバーを立ち上げる
それが
var express = require(‘express’);

var app = express();
var server = http.createServer(app).listen(8080);
var io=io.listen(server);
クライアントからの情報要求があって
接続が確立すると
connection イベントが発生して
socket オブジェクトをコールバックで取得できる
このコールバックの中で、処理を書く
io.sockets.on(‘connection’, function(socket){
socket.on(‘msg’,function(msg){
socket.emit(‘msg’,msg);
socket.broadcast.emit(‘msg’,msg);
});
});
がそれにあたる
もっとわかりやすく分解すると
io.sockets.on(‘connection’,コールバック関数)
となっていて
このコールバック関数の中身が
function(socket){
socket.on(‘msg’,function(msg){
socket.emit(‘msg’,msg);
socket.broadcast.emit(‘msg’,msg);
});
ということ
on は jQuery とかででてきている
古いものだと
bind() とかで書かれているかもしれない
on() ひとつで bind() live() delegate() を表せる
に詳しい解説あり

Socket.IO 概要

Socket.IO は
Node.js で利用できる
リアルタイム通信のためのモジュール
トランスポートメカニズムを吸収することで
クライアントのブラウザやデバイス対応状況によらず
リアルタイム通信が可能
もし、クライアント側が
WebSocket 未対応なら
Adobe Flash Socket
Ajax Long Polling
Ajax Multipart Streaming
Forever Iframe
JSONP Polling
ちう代替方式で通信を行なう