npm 包 await-connect 使用教程

阅读时长 7 分钟读完

介绍

await-connect 是一个便捷的 Node.js 模块,使使用 Node.js 的网络套接字更加容易,它使用 Promise 去代表套接字和提供可读写和可靠的 API。同时,await-connect 还支持使用 async/await 语法规则,再加上它在使用过程中的灵活性和易用性,让开发者在使用的时候十分的得心应手。

安装

在命令行中执行以下命令,即可安装 await-connect 模块。

用法

使用 await-connect,我们首先需要创建一个服务器实例。

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

其中,createServer 函数接受一个回调函数,用于处理新连接。当新连接建立后,我们会输出一句话“new connection!”和向客户端发送一个“hello there!”的消息。我们也注册了 socket 的 data 事件和 close 事件,在 data 事件中,我们输出从客户端接收到的数据;在 close 事件中,我们输出一句话“connection closed!”。最后,我们在服务器上监听端口 3000。

在客户端,我们可以通过以下代码来连接服务器。

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

这里我们使用的是 Node.js 的 net 模块去创建一个套接字连接服务器。在连接建立后,我们输出一句话“connected to server!”和向服务器发送一个“hello from the client!”的消息。我们同样在套接字上注册了 data 事件和 close 事件,在 data 事件中,我们输出从服务器接收到的数据;在 close 事件中,我们输出一句话“connection closed by server!”并关闭套接字。

使用了 await-connect 和 async/await,我们的代码就能被简化为如下代码。

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

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

这里使用了 async/await 代替了 Promise 的链式调用,使得代码更简洁易懂。

示例代码

我们通过如下代码建立一个基本的双向通信的 Server 和 Client,可以互相发送消息。

Server

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

Client

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

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

以上就是 await-connect 使用教程,希望能够帮助大家在 Node.js 的网络套接字编程中变得更为便捷!

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

纠错
反馈