const express = require('express');
const app = express();
const ws = require('ws').Server;
const wss = new ws({port: 3001});
var sockets = [];
wss.on('connection', function(ws) {
ws.send('连接成功');
sockets.push(ws);
ws.on('message', function(data) {
ws.send(data);
try {
sockets.forEach(function (socket) {
if (ws != socket) {
socket.send(data);
}
});
} catch (err) {
console.log(err);
}
});
ws.on('error', function(e) {
console.log(e);
});
ws.on('close', function(e) {
console.log(e);
});
});
app.use(express.static(__dirname)).listen(3000, 'localhost');
app.get('/', (req, res) => {
res.sendFile(__dirname+'/websocket.html');
});
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>websocket</title>
<link rel="stylesheet" href="test.css">
</head>
<body>
<input id="msg" type="text"/>
<button id="send" onclick="sendMsg()">发送</button>
<script>
var ws = new WebSocket('ws://localhost:3001');
ws.onopen = function(e) {
console.log(e);
};
ws.onmessage = function(data) {
console.log(data.data);
showMsg(data.data);
};
ws.onerror = function(e) {
console.log(e);
};
ws.onclose = function(e) {
console.log(e);
};
function sendMsg() {
var msg = document.getElementById('msg').value;
var now = (new Date()).toLocaleTimeString();
ws.send(now+'@'+msg);
}
function showMsg(data) {
var msg = document.createElement('div');
msg.innerHTML = data;
document.body.appendChild(msg);
}
document.onkeyup = function(event) {
event = event || window.event;
if (event.keyCode == 13) {
sendMsg();
}
};
</script>
</body>
</html>