WebSocket 是一种网络通信协议,它允许服务器与客户端之间进行全双工通信。这意味着服务器可以在任何时候主动向客户端发送消息,而不需要客户端先发起请求。WebSocket 协议在建立连接后,会在 TCP 连接上使用 HTTP 升级机制,从而切换到 WebSocket 协议。
要让 WebSocket 服务器/客户端与两方通信,通常需要一个中间服务器来转发消息。以下是一个简单的示例,展示如何使用 Node.js 和 ws
库来实现这一功能。
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
const clients = new Set();
wss.on('connection', function connection(ws) {
clients.add(ws);
ws.on('message', function incoming(message) {
console.log('received: %s', message);
// 广播消息给所有客户端
for (let client of clients) {
if (client.readyState === WebSocket.OPEN) {
client.send(message);
}
}
});
ws.on('close', function close() {
clients.delete(ws);
});
});
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Client</title>
</head>
<body>
<script>
const socket = new WebSocket('ws://localhost:8080');
socket.onopen = function() {
console.log('Connected to WebSocket server');
socket.send('Hello Server!');
};
socket.onmessage = function(event) {
console.log('Message from server:', event.data);
};
socket.onclose = function() {
console.log('Disconnected from WebSocket server');
};
</script>
</body>
</html>
wss://
(WebSocket Secure)协议来加密数据传输,防止中间人攻击。通过上述方法,可以实现一个基本的 WebSocket 服务器/客户端通信模型,并确保其稳定性和安全性。
云+社区技术沙龙[第14期]
云+社区技术沙龙[第5期]
云+社区技术沙龙[第1期]
GAME-TECH
新知
腾讯云GAME-TECH游戏开发者技术沙龙
小程序·云开发官方直播课(数据库方向)
云+社区技术沙龙[第17期]
云+社区开发者大会(杭州站)
Techo Day
云+未来峰会
腾讯云GAME-TECH游戏开发者技术沙龙
领取专属 10元无门槛券
手把手带您无忧上云