ページ

2012年8月28日火曜日

node.jsサーバ+socket.ioでiPhoneアプリを作ったのでその備忘録。

node.jsサーバ+socket.ioでiPhoneアプリを作ったのでその備忘録。

アプリ機能
 同じパスでサーバー接続したiPhone同士のブラウザをリアルタイムに共有させる。

サーバサイドのディレクトリ
 node.jsのディレクトリ/test/app_temp.js

app_temp.js
==============================
var io = require('socket.io').listen(PORT_NUMBER);

// WebSocket接続時
con = io.sockets.on('connection', function (socket) {
console.log('CONNECTION ok');

socket.emit('reset');

socket.on('login',function(data){
console.log('CATCH JOIN EVENT ok',data);
socket.join(data.pass);
socket.set('name',data.name);
socket.set('pass',data.pass);
//con.to(data.pass).emit('joining',data);
socket.emit('loggingin',data);
socket.broadcast.to(data.pass).emit('joining',data);
});

socket.on('scroll', function (data) {
var name,pass;
console.log('CATCH SCROLL EVENT ok', data);
socket.get('pass',function(err,_pass){
pass = _pass;
});
con.to(pass).emit('scrolling',data);
});

socket.on('load', function (data) {
var name,pass;
console.log('CATCH LOAD EVENT ok', data);
socket.get('pass',function(err,_pass){
pass = _pass;
});
con.to(pass).emit('loading',data);
});

socket.on('zoom',function(data){
var name,pass;
console.log('CATCH ZOOM EVENT ok',data);
socket.get('pass',function(err,_pass){
pass = _pass;
});
con.to(pass).emit('zooming',data);
});

socket.on('disconnect',function(){
console.log('DISCONNECT END');
var name,pass;
socket.get('pass',function(err,_pass){
pass = _pass;
});
socket.get('name',function(err,_name){
name = _name;
});
socket.leave(pass);
con.to(pass).emit('disconnect',name);
});
});
====================================