📜  在 ws nodejs 中创建房间 - Javascript (1)

📅  最后修改于: 2023-12-03 15:07:51.572000             🧑  作者: Mango

在 ws nodejs 中创建房间 - Javascript

WebSocket 是一种为互联网上基于浏览器的实时 Web 应用程序提供双向通信通道的技术。它允许客户端和服务器之间进行实时的通信。

在本篇文章中,我们将讨论如何在 nodejs 中使用 websocket 创建房间。

准备工作
  • 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 服务器。