当前位置: 首页 > 后端技术 > Node.js

基于nodejs和socket.io的简易聊天室

时间:2023-04-03 12:16:43 Node.js

项目介绍本聊天室基于socket.io实现客户端与服务端的双工实时通信。聊天室可以发送消息、图片、文件。通信图客户端和服务器连接客户端向服务器发送事件服务器接受事件并将事件发送给所有客户端。实现事件广播。客户端1.创建客户端并连接到服务器localhost:3000varsocket=io('localhost:3000')2.向服务器发送事件//sendusernamesocket.emit("join",name)//sendmessagesocket.emit("message",userObj)//发送文件和图片socket.emit('base64file',msg);3.监听服务端发送的事件socket.on("join",function(user){socket.name=useraddLine(user+'加入群聊')})//收到服务端的消息事件socket.on("message",function(msg){addLine(msg)})socket.on('断开连接',function(msg){addLine(msg+'退出群聊');})socket.on('base64文件',function(msg){addLine(msg)})S??erver1.监听客户端的连接事件io.on('connection',function(socket){}2.监听客户端发送的事件并发送eventtoallclients//connectionclientio.on('connection',function(socket){console.log('auserconnected')//套接字捕获连接事件socket.on("join",function(name){socket.name=name;usocket\[name\]=socket//server将join事件发送给所有clientsio.emit("join",name)})socket.on("message",function(msg){io.emit("message",msg)//广播新消息})socket.on('disconnect',function(msg){io.emit('disconnect',socket.name);})socket.on('base64file',function(msg){socket.username=msg.username;//socket.broadcast.emit('base64image',//排除发送者io.sockets.emit('base64file',//包括发件人信息);});});运行服务器在powershell上运行(需要安装nodejs),首先npminstall下载所有的npm包,然后运行server.js文件,即node服务器运行客户端,输入localhost:3000projectcodedemoon浏览器