js代码如何实现多人聊天室
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关js代码如何实现多人聊天室,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。设计要求:1)用户应通过注册登录聊天室2)聊天室可以显示所有在线
千家信息网最后更新 2026年11月01日js代码如何实现多人聊天室
这篇文章将为大家详细讲解有关js代码如何实现多人聊天室,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
设计要求:
1)用户应通过注册登录聊天室
2)聊天室可以显示所有在线用户
3)在每一条聊天内容之前,显示发出这条聊天内容的用户名。
4)可进行私密聊天。
5)当用户进入和离开聊天室时,系统会在聊天室里广播
config.js 代码如下
module.exports={ "port":3000, "host":"127.0.0.1"}broadcast.js 代码如下
exports.broadcast=function (data,users) { var from=data.from; var message=data.message; message = from+"说: "+message; //构建消息 var send={ mstype:"broadcast", message:message }; send =new Buffer(JSON.stringify(send)); //遍历用户组所有用户,出发送方的所有用户 for(var username in users){ if(username!=from){ users[username].write(send); } }};Signup.js 代码如下
exports.signup = function (socket,data,users) {//获取注册用户的用户名 var username=data.username; if(!users[username]){ //不存在,则保存用户名和socket users[username]=socket; var send={ mstype:"signup", code:1000, username:username, message:"注册成功" }; socket.write(JSON.stringify (send)); }else{//cunzai var send={ mstype:"signup", code:1001, message: "用户名已被占,请重新输入用户名" } socket.write(JSON.stringify(send)); }};p2p.js 代码如下
exports.p2p=function (socket,data,users) { var from=data.from; var to=data.to; var message=data.message; var receiver=users[to]; if(!receiver){//接收方不存在 var send={ mstype:"p2p", code:2001, message:"用户"+to+"不存在" } socket.write(JSON.stringify(send)); }else{ //存在则向接收方发送信息 var send={ mstype:"p2p", code:2000, from:from, message:from+"对你说"+message } receiver.write(JSON.stringify(send)); }};Server服务器端代码
//p2p 聊天室服务器var net=require("net");var config=require("./config");var broadcast=require("./broadcast");var p2p=require("./p2p");var signup=require("./signup");var users={};var server=net.createServer();server.on ("connection",function (socket) { socket.on("data",function (data) { data = JSON.parse(data); switch (data.mstype) { case "signup": signup.signup(socket, data, users); break; case "broadcast": broadcast.broadcast(data, users); break; case "p2p": p2p.p2p(socket, data, users); break; default: break; } }); socket.on("error",function () { console.log("有客户端异常退出了"); });});server.listen(config.port,config.host,function () { console.log("服务器在端口"+config.port+"启动监听");});Client客户端代码如下:
var net=require("net");var config=require("./config");var Client=net.createConnection({ port:config.port, host:config.host});var username;Client.on("connect",function () { console.log("请输入用户名:"); process.stdin.on("data",function (data){ data=data.toString().trim(); //判断用户是否已经存在 if(! username){ var send={ mstype:"signup", username:data }; Client.write(JSON.stringify(send)); return; } var regex=/(.{1,18}):(.+)/; var matches=regex=regex.exec(data); if(matches){ //能匹配则是p2p var from=username;//发送方是自己 var to=matches[1];//发给谁 var message=matches[2]; //构造JSON形式信息 var send={ mstype: "p2p", from:username, to:to, message:message }; Client.write(JSON.stringify(send)); }else{ //广播 var send={ mstype:"broadcast", from:username, message:data }; Client.write(JSON.stringify(send)); } });});Client.on("data",function (data) { data=JSON.parse(data); switch (data.mstype) { case "signup": var code=data.code; switch (code) { case 1000: username=data.username; console.log(data.message); break; case 1001: console.log(data.message); break; default: break; } break; case "broadcast": console.log(data.message); break; case "p2p": var code=data.code; switch (code) { case 2000: console.log(data.message); break; case 2001: console.log(data.message); break; default: break; } break; default: break; }});Client.on("error",function () { console.log("聊天室已关闭!!");})关于"js代码如何实现多人聊天室"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
用户
代码
聊天室
用户名
内容
服务器
篇文章
服务
多人
信息
客户
客户端
收方
更多
广播
输入
不错
实用
成功
形式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
厦门中拓互联网络科技有限公司
互联网科技的发展
互联网科技排名
狮子座互联网科技有限公司
狮子座互联网科技培训
中国互联网金融科技基金
互联网教育科技公司vipkid
随着互联网科技发展
互联网为啥属于高科技
昭通互联网科技选哪家
阿大互联网科技有限公司
996高科技互联网公司
朱啸虎曾投资哪些互联网科技企业
互联网科技大赛获奖感言
工业互联网山东科技大学
黑科技 体验场景 互联网大会
抖集互联网科技技术咨询
互联网科技接地气
广州三三互联网科技有限公司
广东猫王互联网科技有限公司电话
手冲咖啡和咖啡机区别
互联网金融监管科技数据
狮子座互联网科技
互联网科技大赛获奖感言
互联网营销推广黑科技
西安有哪些互联网高科技企业
福州德业互联网科技
国产互联网科技公司
悟空问答互联网科技
众联互联网络科技