概要:
前端页面应用socketio库
后端使用node 搭建
前端如何使用socket.io
<!--引入socket.io库 -->
<script type="text/javascript" src="./socket.io/socket.io.js"></script>
<script type="text/javascript">
//连接服务器
var socket = io.connect('http://localhost');
//使用on函数创建news时间的监听
socket.on('news', function (data) {
console.log(data);
//使用emit向服务器提交事件
socket.emit('other event', { my: 'data' });
});
</script>
后端
var chatServer = require('./lib/chat_Server.js');
//使用listen()在http服务器上监听
chatServer.listen(server);
chat_server
exports.listen=function(server){
io = socketio.listen(server);
io.set('log level' , 1);
io.sockets.on('connection' , function(socket){
//各个功能辅助函数,用于完成聊天室的具体功能
guestNumber=assginGuestName(socket,guestNumber,nickName,nameUsed);
joinRoom(socket,'Lobby');
handleMessageBroadcasting(socket,nickName);
handleNameChangeAttempts(socket,nickName,nameUsed);
handleRoomJoining(socket);
socket.on('rooms',function(){
socket.emit('rooms',io.sockets.manager.rooms);
});
handleCilentDisconnection(socket,nickName,nameUsed);
});
};
other:
向同一个集合中的连接广播事件
//使用broadcast广播
socket.broadcast.to(room).emit("message",{"text":nickName[socket.id]+"has joined "+room+"."});
自带connect,message,disconnect三个事件,允许自定义事件
尚待补充。。。