npm 包 engine.io-as-websocket 使用教程

阅读时长 3 分钟读完

前言

在前端开发过程中,我们经常需要使用 WebSocket 进行实时通信,而 engine.io 是一个很好的 WebSocket 封装库。但是,对于一些浏览器可能不支持 WebSocket 的情况,engine.io 会自动降级为使用轮询的方式进行通信,这种方式的效率并不高。因此,npm 包 engine.io-as-websocket 基于 engine.io 进行了再封装,使其能够直接调用浏览器原生的 WebSocket API 进行通信。

安装

使用 npm 可以很方便地进行安装:

使用方法

使用 engine.io-as-websocket 的方式与使用 engine.io 基本一致,只是需要添加一个 transport 属性并设为 websocket

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

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

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

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

这里创建了一个 engine.io 服务器,并将其升级为使用原生 WebSocket 进行通信。在连接事件回调函数中可以处理连接成功后的操作。

注意:实际使用时需要加上 error 处理,以及对非 WebSocket 的通信进行支持。

示例代码

这里给出一个完整的示例代码供参考:

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

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

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

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

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

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

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

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

总结

通过使用 engine.io-as-websocket 包,我们可以在浏览器支持 WebSocket 的情况下直接使用该协议进行通信,避免了使用轮询方式时效率低下的问题。同时,这个库也并不影响原本的 engine.io 使用方式,更易于开发者进行选择。如果在前端开发过程中需要使用 WebSocket 进行通信,这个库将会是一个好的选择。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e26a563576b7b1ecfbf

纠错
反馈