client端
msg
服务器端
var io = require('socket.io')(10000);
var ROOM_LIST = {};
io.on('disconnect', function (socket) {
console.info('disconnect');
});
io.on('connection', function (socket) {
socket.on("login", function (data, callback) {
console.info('login:' + data);
var room = data.room;
var name = data.name;
console.info('1:' + room + '--' + name);
if (room == '' || name == '') {
callback({
code : -3,
msg : 'error'
});
}
var obj = {
socket : socket,
name : data.name,
lastLogin : new Date().getTime()
};
if (!ROOM_LIST[room]) {
ROOM_LIST[room] = {};
}
var roomSize = ROOM_LIST[room].size || 0;
if (roomSize == 2) {
callback({
code : -1,
msg : 'Room Full'
});
return;
}
if (roomSize == 0) {
ROOM_LIST[room].users = {};
ROOM_LIST[room].one = obj;
callback({
code : -2,
msg : 'Waiting for another user'
});
}
if (roomSize == 1) {
ROOM_LIST[room].two = obj;
ROOM_LIST[room].one.socket.emit('status', {
room : room,
status : 1,
toUser : name,
msg : "Begin -- It's your turn"
});
ROOM_LIST[room].two.socket.emit('status', {
room : room,
status : 2,
toUser : ROOM_LIST[room].one.name,
msg : 'Begin -- Wait Opponent'
});
}
ROOM_LIST[room].size = ++roomSize;
ROOM_LIST[room].users[name] = obj;
});
socket.on("private", function (data, callback) {
console.info(data);
var room = data.room;
var fromUser = data.fromUser;
var toUser = data.toUser;
if (ROOM_LIST[room] && ROOM_LIST[room].users && ROOM_LIST[room].users[toUser]) {
ROOM_LIST[room].users[toUser].socket.emit('private', {
room : room,
fromUser : fromUser,
toUser : toUser,
x : data.x,
y : data.y,
color : data.color
});
callback({});
} else {
callback({});
}
});
console.info('Server Start Success!');
});
下载地址 http://download.csdn.net/detail/rgbaflf/9435669