nodejs实现:
示例讲解图:
示例代码:
服务器端:
const WebSocket = require("ws");
const ws = new WebSocket.Server({port: 8080}, ()=>{
console.log('socket start');
});
let clients = [];
ws.on('connection', (client)=>{
clients.push(client);
client.send("welcome!");// 数据传输字符串
client.on("message", (msg)=>{
console.log("来自前端的数据:"+msg);
if(msg.indexOf("all") != -1){
sendAll();
}
});
client.on("close", (msg)=>{
console.log("前端主动断开连接");
});
});
// 给所有连接的客户端发送数据
function sendAll(){
for (let index = 0; index < clients.length; index++){
clients[index].send('sdlsafa');
}
}
浏览器端:
<!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>
</head>
<body>
<input type="text" id="name">
<button onclick="sendserver()"> send server </button>
<script>
const ws = new WebSocket("ws://localhost:8080/");
ws.onopen = function(){
console.log("服务器已连接");
};
ws.onmessage = (msg)=>{
console.log("来自服务器端的数据"+msg.data);
};
ws.onclose = ()=>{
console.log("服务器关闭");
};
function sendserver(){
let msg = document.getElementById("name").value;
// ws.send("hello!" + msg);
ws.send(msg);
}
</script>
</body>
</html>