概要:
- 前端页面应用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三个事件,允许自定义事件
尚待补充。。。
时间: 2024-10-07 13:04:00