介绍
channeltest1 是一个 node.js 的 npm 包,用来方便地建立两个终端之间的通信 channel。它支持单次通信、循环通信和多线程通信。在前端开发中,它可以用来测试 websocket、socket.io 等实时通信功能。
安装
在终端中输入以下命令进行安装:
npm install channeltest1
这样 channeltest1 就会被添加到你的项目中。
使用方法
在 node.js 中引入 channeltest1 模块:
const Channel = require('channeltest1');
单次通信
在两个终端中分别输入以下代码:
const Channel = require('channeltest1'); const channel = new Channel(); channel.send('Hello world!').then((msg) => { console.log(msg); channel.destroy(); });
const Channel = require('channeltest1'); const channel = new Channel(); channel.receive().then((msg) => { console.log(msg); channel.destroy(); });
第一个终端会输出 Hello world!
,第二个终端会等待输入并输出 Hello world!
。
循环通信
在两个终端中分别输入以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------------ ----- ------- - --- ---------- -------- --------- - ---------------------------- -- - ---------------------- --------- -- ---- --- ------- - ----------- ---------- - ---- - ------------------ - --- - --------------
const Channel = require('channeltest1'); const channel = new Channel(); channel.receiveLoop((msg) => { console.log(`received: ${msg}`); return (msg !== 'stop') ? `Hello ${msg}!` : false; });
第一个终端会输出多行 received: ...
,第二个终端会等待输入并输出多行 received: ...
。
多线程通信
在三个终端中分别输入以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------------ ----- ------- - --- ---------- --------------------- ----------------- -------- - ------ ----------- ------- ----------- --------------- -------------- -- - --- ---- - - -- - - -- ---- - ---------------- - --------------------- ---------------- -- -- - ------------------------- ------------------ --- ------------------------------ -- - -------------------- --------- ---------------------- ------ ------ ---------------------- ---------- -- - ----------------------- -------------------- ---------------- --- ---
-- -------------------- ---- ------- ----- ------- - ------------------------ ----- ------- - --- ---------- ------------------------- -- - --------------------- --------- ------------------------- ------ ------ ------------------------- ---------- -- - --------------------- ---------------- ------------------ ---
-- -------------------- ---- ------- ----- ------- - ------------------------ ----- ------- - --- ---------- ---------------------------- ----- -- - ----- ---- - ---- ----- -- - ----- ---------------------------- ------------------------ - ------ ----------- ------- ----------- --- ------------------- -- -- - ------------------------- ------------------ --- ---------------------- ---------------------------- -- - -------------------- --------- ------------------------- ------ ------ ------------------------- ---------- -- - --------------------- -------------------- ---------------- --- ---
第一个终端会输出多行 (Parent) received: ...
和 (Child) received: ...
,第二个终端会等待输入并输出多行 (Parent) received: ...
和 (Child) received: ...
。第三个终端会向第一个终端发送名字 Nick
。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005600e81e8991b448dde8e