📅  最后修改于: 2023-12-03 15:07:51.572000             🧑  作者: Mango
WebSocket 是一种为互联网上基于浏览器的实时 Web 应用程序提供双向通信通道的技术。它允许客户端和服务器之间进行实时的通信。
在本篇文章中,我们将讨论如何在 nodejs 中使用 websocket 创建房间。
下面是使用 npm 安装 WebSocket 库的命令:
npm install ws
首先我们需要创建一个 WebSocket 服务器。在 server.js 文件中编写以下代码:
const WebSocket = require("ws");
const wss = new WebSocket.Server({ port: 3000 });
wss.on("connection", function connection(ws) {
console.log("A new client connected");
ws.on("message", function incoming(message) {
console.log("received: %s", message);
});
ws.on("close", function close() {
console.log("client disconnected");
});
});
上述代码中,我们导入了 WebSocket 库并创建了一个 WebSocket 服务器。在连接建立时,我们将打印一条消息表示有新的客户端加入了房间。在接收到消息时,我们将打印出该消息。在断开连接时,我们将打印出一条消息表示该客户端已离开房间。
现在我们需要创建一个前端页面来模拟客户端。在 index.html 文件中添加以下代码:
<!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>WebSocket Client</title>
</head>
<body>
<h1>WebSocket Client</h1>
<form>
<input type="text" placeholder="Enter Message" />
<button type="submit">Send</button>
</form>
<script>
const form = document.querySelector("form");
const input = form.querySelector("input");
const messages = document.createElement("ul");
document.body.appendChild(messages);
const ws = new WebSocket("ws://localhost:3000");
form.addEventListener("submit", function (event) {
event.preventDefault();
const message = input.value;
ws.send(message);
input.value = "";
});
ws.onmessage = function (event) {
const message = document.createElement("li");
message.textContent = event.data;
messages.appendChild(message);
};
</script>
</body>
</html>
上述代码中,我们创建了一个简单的表单,使我们能够输入消息并将其通过 WebSocket 发送到服务器。我们还通过 JavaScript 动态创建一个 ul 元素,将收到的消息添加到其中。注意,我们使用的是 localhost:3000,这意味着客户端将连接到我们在 server.js 中创建的 WebSocket 服务器。
现在我们准备好了客户端和服务器。在终端中运行以下命令启动 websocket 服务器:
node server.js
现在我们可以打开 index.html 页面,并尝试在文本框中输入消息。该消息将自动发送到我们在 server.js 中创建的 WebSocket 服务器,然后将在客户端和服务器之间进行实时通信。
通过这篇文章,我们已经成功地在 nodejs 中创建了一个 websocket 服务器和客户端,并将它们连接在一起。希望此文章能帮助你了解 websocket 技术,以及如何在 nodejs 中创建 websocket 服务器。