使用 Hapi 建立可测试的 WebSocket API

WebSocket 是 HTML5 开始提供的一个在单个 TCP 连接上进行全双工通讯的协议。它不同于 HTTP 的长连接,在数据传输方面具有非常高的效率。在前端开发中,WebSocket 通常用于实时通讯、在线游戏、股票行情等场景。在使用 WebSocket 进行前后端通讯时,通常需要通过后端建立 WebSocket API 服务,但是如何在前端自测这个 WebSocket API 服务呢?今天我们介绍如何在前端使用 Hapi 建立可测试的 WebSocket API。

准备工作

在开始之前,我们需要保证 Node.js 的版本为 10 或以上,并且已经全局安装了 Hapi,还需要安装 Hapi 的 WebSocket 插件 —— nes

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

代码实现

接下来,我们看一下具体的代码实现。

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

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

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

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

------

代码解析:

  1. 引入 Hapi 和 Nes
  2. 创建 Hapi 服务,并在配置中指定本地地址和端口号
  3. 使用 register 注册 Nes 插件
  4. 创建 WebSocket API 路由
    • method:指定请求方法,这里是 GET 方法
    • path:指定请求路径
    • config:WebSocket API 插件的配置
      • id:配置 WebSocket API 插件 ID
      • handler:WebSocket 逻辑处理函数
      • app.broadcast:为每个连接广播收到的 WebSocket 消息
  5. 启动 Hapi 服务

以上就是建立可测试的 WebSocket API 的代码实现。不过这段代码还有一个问题,我们如何在前端进行自测呢?接下来看看我们的测试代码。

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

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

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

代码解析:

  1. 引入 Nes
  2. 创建 WebSocket 客户端连接
  3. 通过 Nes 的 connect 方法连接 WebSocket API 服务
  4. 留意 Socket 连接成功后在控制台打印 connect success!
  5. 最后通过 disconnect 方法关闭连接。

总结

在本文中,我们介绍了如何使用 Hapi 建立可测试的 WebSocket API。如果想要进行前端自测,只需要在 WebSocket API 配置中增加 app.broadcast 方法来广播 WebSocket 消息,然后通过 Socket 客户端连接 WebSocket API 进行测试即可。希望本文能为大家带来一些帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/664beae4d3423812e4ac3d85