Node.js Socket.io

Socket.IO 是一个实时通信库,它允许你在浏览器和服务器之间建立持久连接。它支持多种传输机制,包括 WebSocket、HTTP 长轮询等,并且可以自动选择最佳的传输方式。

安装 Socket.IO

首先需要安装 socket.iosocket.io-client

服务端安装

在你的 Node.js 应用程序中引入 socket.io

这里的 server 是一个 HTTP 服务器实例。如果你还没有创建 HTTP 服务器,可以使用如下代码创建:

-- -------------------- ---- -------
----- ---- - ----------------
----- ------ - ----------------------- ---- -- -
  ------------------ - --------------- ----------- ---
  ------------------ -------------
---

----- -- - -----------------------------

------------------- -------- -- -
  -------------- ---- ------------
  ----------------------- -- -- -
    ----------------- ---------------
  ---
---

------------------- -- -- -
  ---------------------- -- ---------
---

客户端安装

在客户端引入 socket.io-client

-- -------------------- ---- -------
------- ---------------------------------------
--------
  ----- ------ - -----------------------
  -------------------- -- -- -
    ---------------------- -- --- ---------
  ---

  ----------------------- -- -- -
    ------------------------- ---- --- ---------
  ---
---------

Socket.IO 基础

连接事件

当客户端连接到服务器时,服务器会触发 connection 事件:

发送消息

服务器可以通过调用 socket.emit 方法来发送消息给特定的客户端:

客户端通过监听 news 事件来接收消息:

广播消息

如果你想向所有客户端广播一条消息,可以使用 io.emit 方法:

室(Room)

你可以将客户端分配到不同的房间,以便更有效地管理连接:

然后你可以向特定房间发送消息:

自定义事件

除了默认的连接和断开事件之外,你还可以定义自定义事件并处理它们:

客户端可以触发这个事件:

实战案例:聊天室

服务端代码

-- -------------------- ---- -------
----- ------- - -------------------
----- ---- - ----------------
----- -------- - ---------------------

----- --- - ----------
----- ------ - -----------------------
----- -- - -----------------

------------ ----- ---- -- -
  ---------------------- - ---------------
---

------------------- -------- -- -
  -------------- ---- ------------
  
  --------------- --------- ----- -- -
    ------------- --------- -----
  ---

  ----------------------- -- -- -
    ----------------- ---------------
  ---
---

------------------- -- -- -
  ---------------------- -- ---------
---

客户端代码

-- -------------------- ---- -------
--------- -----
------
  ------
    ---------------- ------------
    -------
      - - ------- -- -------- -- ----------- ----------- -
      ---- - ----- ---- ---------- ------ -
      ---- - ----------- ----- -------- ---- --------- ------ ------- -- ------ ----- -
      ---- ----- - ------- -- -------- ----- ------ ---- ------------- ---- -
      ---- ------ - ------ --- ----------- -------- ---- ----- ------- ----- -------- ----- -
      --------- - ---------------- ----- ------- -- -------- -- -
      --------- -- - -------- --- ----- -
      --------- ----------------- - ----------- ----- -
    --------
  -------
  ------
    --- -------------------
    ----- ----------
      ------ ------ ------------------ -----------------------
    -------
    ------- ---------------------------------------
    ------- --------------------------------------------------------
    --------
      ---------- -- -
        --- ------ - -----
        ---------------------------- -
          ------------------- -- -------- ---- ---------
          ----------------- --------- ---------------
          ----------------
          ------ ------
        ---
        --------------- --------- --------------
          -------------------------------------------
          ------------------ ----------------------------
        ---
      ---
    ---------
  -------
-------

总结

本章介绍了如何使用 Socket.IO 来实现简单的实时通信功能。通过这些基础知识,你可以进一步探索和应用 Socket.IO 的高级特性。希望你能利用这些知识构建出有趣的实时应用程序!

上一篇: Node.js Koa.js
下一篇: Node.js GraphQL
纠错
反馈