WebSocket 是 HTML5 开始提供的一个在单个 TCP 连接上进行全双工通讯的协议。它不同于 HTTP 的长连接,在数据传输方面具有非常高的效率。在前端开发中,WebSocket 通常用于实时通讯、在线游戏、股票行情等场景。在使用 WebSocket 进行前后端通讯时,通常需要通过后端建立 WebSocket API 服务,但是如何在前端自测这个 WebSocket API 服务呢?今天我们介绍如何在前端使用 Hapi 建立可测试的 WebSocket API。
准备工作
在开始之前,我们需要保证 Node.js 的版本为 10 或以上,并且已经全局安装了 Hapi,还需要安装 Hapi 的 WebSocket 插件 —— nes。
--- ------- ---- --- ------- ---
代码实现
接下来,我们看一下具体的代码实现。
----- ---- - --------------- ----- --- - -------------- ----- ------ - ------------- ----- ------------ ----- ---- -- ----- ---- - ------- -- - ----- -------------------- -------------- ------- ------ ----- ------ ------- - --- ------------ -------- -- -- - -- --------- ---- -- ---- - ---------- --------- -- - ------------------------- - - - -- ----- -------------- - ------
代码解析:
- 引入 Hapi 和 Nes
- 创建 Hapi 服务,并在配置中指定本地地址和端口号
- 使用 register 注册 Nes 插件
- 创建 WebSocket API 路由
- method:指定请求方法,这里是 GET 方法
- path:指定请求路径
- config:WebSocket API 插件的配置
- id:配置 WebSocket API 插件 ID
- handler:WebSocket 逻辑处理函数
- app.broadcast:为每个连接广播收到的 WebSocket 消息
- 启动 Hapi 服务
以上就是建立可测试的 WebSocket API 的代码实现。不过这段代码还有一个问题,我们如何在前端进行自测呢?接下来看看我们的测试代码。
------ --- ---- ----- ----- ------ - --- --------------------------------- ---------------------- -- - -- ------- - ---------------------------- - ---- - -------------------- ---------- - ------------------- --
代码解析:
- 引入 Nes
- 创建 WebSocket 客户端连接
- 通过 Nes 的 connect 方法连接 WebSocket API 服务
- 留意 Socket 连接成功后在控制台打印 connect success!
- 最后通过 disconnect 方法关闭连接。
总结
在本文中,我们介绍了如何使用 Hapi 建立可测试的 WebSocket API。如果想要进行前端自测,只需要在 WebSocket API 配置中增加 app.broadcast 方法来广播 WebSocket 消息,然后通过 Socket 客户端连接 WebSocket API 进行测试即可。希望本文能为大家带来一些帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/664beae4d3423812e4ac3d85