More Related Content
Similar to Nodejs+socket ioを試す
Similar to Nodejs+socket ioを試す (20)
Nodejs+socket ioを試す
- 7. • Ajax long polling
バックグラウンドでHTTP通信
通信コストが高い
• Plugin Socket
FLASH,Sliverlightなどのプラグイン
端末にプラグインのインストールが必要
• WebSocket
HTTP接続をupgradeして接続
モダンブラウザのみ
とにかくどれでも良いから同じコードで繋げたい
ネットワークの情報をもっとリアルタイムに
- 8. $(function(){!
//開いたアドレスに対してWebSocketを繋ぐ!
var socket = io.connect('http://'+window.location.host+'/');!
!
//接続したら!
socket.on('connect',function(){!
!
!
! ! //メッセージ送信!
socket.emit('echo','Connection Success');!
!
!
//echo test!
socket.on('echo',function(msg){!
console.log('echo : '+msg);!
socket.emit('broadcast','user login');!
});!
!
!
//broadcast test!
socket.on('broadcast',function(msg){!
console.log('broadcast : '+msg);!
});!
!
!
//Disconnect!
socket.on('disconnect',function(){!
console.log('Disconnect Server.');!
});!
});!
!
});!
自分でeventnameを決める
切断されたら
Client side
broadcastを受ける
echoEventが返ってきたら
broadcastを送信
event名:echoでメッセージ送信
接続できたら
Socket.IOで接続
- 9. //Express!
var server = http.createServer(app);!
server.listen(app.get('port'), function(){!
console.log('Express server listening on port ' + app.get('port'));!
});!
!
//WebsocketModule!
var socketIO = require('socket.io');!
!
//Listener!
var io = socketIO.listen(server);!
!
//接続Event!
var sockets = io.sockets.on('connection',function(client){!
!
!
! //echo message!
client.on('echo',function(msg){!
client.emit('echo',msg);!
});!
!
//broadcast message!
client.on('broadcast',function(msg){!
client.emit('broadcast',msg);!
client.broadcast.emit('broadcast',msg);!
});!
!
//disconnect!
client.on('disconnect', function() {!
client.broadcast.emit('broadcast','disconnected ');!
});!
!
}); !
ExpressでHTTPサーバー作成
同じアドレス上にIOを作成
接続eventのCallback
echo event
自分でeventnameを決める
broadcast event
切断されたら
Server side