node启动webScoket服务
const webScoket = require("ws");
const wss = new webScoket.Server({ port: 3000 });
wss.on("connection", (ws) => {
console.log("连接进来了");
ws.on("close", () => {
console.log("连接结束");
});
ws.on("message", (e) => {
// 在这里可以访问WebSocket对象的唯一标识符
const uniqueIdentifier = ws._socket.remoteAddress + ":" + ws._socket.remotePort;
ws.send("接收到WebSocket对象为" + uniqueIdentifier + ",服务器回复:" + e.toString("utf8"));
});
});
html连接webscoket
<script>
const ws = new WebSocket("ws://localhost:3000");
ws.addEventListener("open", () => {
console.log("网页连接上ws服务器了");
});
ws.addEventListener("message", ({ data }) => {
console.log("收到的消息:", data);
});
// 在控制台调用sendWsMessage发送消息即可测试
window.sendWsMessage = (e) => {
ws.send(e);
};
</script>
一些关于webscoket的GPT问答
1.为什么一个node起了一个webscoket服务,可以让多个用户端连接,并且区分
在Node.js中创建WebSocket服务可以让多个用户端连接,并且区分它们的连接。这可以通过WebSocket协议本身的特性以及在Node.js中使用的WebSocket库来实现。
下面是一般的实现方式:
-
WebSocket协议的特性:
- WebSocket协议是一种全双工通信协议,允许服务器和客户端之间进行实时的双向通信。
- 每个客户端连接到WebSocket服务器时,服务器会为每个连接创建一个唯一的WebSocket对象,用于处理该客户端的通信。
-
Node.js中的WebSocket库:
- 在Node.js中,您可以使用诸如
ws或socket.io等WebSocket库来创建WebSocket服务器。 - 这些库提供了方便的API,使您可以轻松地处理WebSocket连接、消息传输和事件处理。
- 在Node.js中,您可以使用诸如
-
区分多个用户端连接的方法:
- 每当有新的客户端连接到WebSocket服务器时,服务器会创建一个新的WebSocket对象来表示该连接。
- 您可以通过WebSocket对象的唯一标识符(如ID)或其他属性来区分不同的客户端连接。
- 您可以维护一个客户端连接的列表或映射,将每个客户端连接的唯一标识符与相应的WebSocket对象关联起来。
- 通过这种方式,您可以在服务器端区分不同的客户端连接,并针对每个客户端执行特定的操作或发送特定的消息。
总的来说,通过WebSocket协议的特性和Node.js中提供的WebSocket库,您可以轻松地创建一个WebSocket服务器,让多个用户端连接并且区分它们,以实现实时的双向通信。