websocket属于是h5的不是属于node但是服务器和node的通信的服务器差不多,有一点就是,服务器接收数据时message事件,发送时send(),直接上代码
客户端也就是页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#con{
width: 500px;
height: 500px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<h1>聊天室</h1>
<div id="con"></div>
<input type="text" id="ipt"/>
<button id="btn">Send</button>
</body>
<script type="text/javascript">
var webclient = new WebSocket("ws://localhost:3000")
webclient.onopen=function(){}
webclient.onmessage=function(e){
console.log(e.data)
document.getElementById("con").innerHTML += "<p>"+e.data+"</p>";
}
document.getElementById("btn").onclick=function(){
webclient.send(document.getElementById("ipt").value)
}
</script>
</html>
服务器:
var ws = require("ws").Server
var server = new ws({port:3000})
var i =0;
var obj = new Object()
server.on("connection",(client)=>{
client.name = ++i;
obj[client.name] = client;
client.on('message',(data)=>{
console.log("客户端:"+data.toString())
huifu(data,client)
})
})
function huifu(message,client){
// client.write("收到了")
for (var i in obj) {
obj[i].send(client.name+":"+message)
}
}