websocket node.js实现实时聊天系统问题咨询
1.最近新学习websocket。做了一个实时聊天。用Node.js搭建的服务:serevr.js .两个相互通信页面:client.html和server.html
但是就是有很多问题,想让知道的人帮我看看哈:
我先把代码贴出来:
server.js:
var ws=require(' nodejs-web socket ');console.log('开始建立连接.');var str1=null,str2=null,clientReady=false,serverReady=falsevar server=ws。CreateServer(function(conn){ conn . on(' text '),function(str){ console。日志;/** * 用户小雨第一次连接*/if(str==='小雨){ str 1=ConClientReady=truestr 1 . SendText('欢迎str);} /** * 用户小乔第一次连接*/if(str==='小乔){ str 2=ConServerReady=true ' str 2 . SendText('欢迎str);} /** * 当有第二个用户连接时*/if(clientReadyserverReady){ str 2。sendtext(字符串);str 1。发送文本(字符串);} }) conn.on('close ',函数(代码,原因){ console.log('关闭连接');}) conn.on('错误,函数(代码,原因){ console.log('异常关闭') });}).听(8082);console.log('websocket连接完毕)client.html:DOCTYPE html html lang=' en ' head meta charset=' UTF-8 ' meta name=' viewport ' content=' width=device-width,initial-scale=1.0 ' meta http-equiv=' X-UA-Compatible ' content=' ie=edge ' title document/title style .匡{宽度: 600像素最小高度: 50px最大高度:296 pxborder:1px固体;向左浮动:显示器:块;位置:相对;溢出-y:滚动;} .值{ width: 200px}。输入{显示:块绝对位置:左转:0边距-top : 300 px;}/样式/床头标签连接用户:/标签输入类型='text' id='name' value='小雨readonly/button id='conn '连接/button button id='close '断开/button br/br/div class=' Kuang ' id=' mess '/div class=' input ' input type=' text ' class=' value ' id=' value 1 '/button id=' send '发送/button /div脚本var name=文档。getelementbyid(' name ').价值;var mess=文档。getelementbyid(' mess ');var值1=文档。getelementbyid('值1 ');var conn=文档。getelementbyid(' conn ');var close=文档。getelementbyid(' close ');close.disabled=trueif(窗口. WebSocket){ conn . onclick=function(){ var ws=new WebSocket(' ws ://127。0 .0 .1:8082 ');conn . disabled=true close . disabled=false ws。onopen=功能(e){控制台。日志('连接服务器成功');ws.send(名称);} ws.onmessage=函数{可变时间=新日期();一团糟。innerhtml=时间。tout cstring()' : ' e . data ' br ';document.getElementById('send ').onclick=函数(e){ ws。发送(姓名)说: '值1。值);值1。值=' ';}文档。onkeydown=函数(e){ e=e | | window。事件;if(例如键码==13){ document。getelementbyid(' send ').onclick();返回false} } } /** *客户端主动断开连接* * * */关闭。onclick=function(){ ws。onclose();conn . disabled=false close . disabled=true } ws。onclose=function(e){ console。日志('服务器关闭');} ws。onerror=function(){ console。日志('连接出错');} } }/脚本/正文/html服务器。超文本标记语言页面和client.html的代码一样,就是用户名字换成小乔啦。
接下来就是问题啦:
1.运行界面:
client.html连接以后:
本来服务器只需要回传一个欢迎小雨的,然后下面还输出了一个。
server.html小乔连接以后也出来了一个小乔,按理是欢迎小乔。然后告诉小乔小雨在线了。
2.两个页面代码一样,但是就是不能只变成一个页面,硬要两个才能聊天。
3.3.server.js的逻辑有问题,一直不清楚。
以上就是边肖给大家介绍的websocket node.js,实现实时聊天系统的问题咨询。希望对你有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!
版权声明:websocket node.js实现实时聊天系统问题咨询是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。