介绍
unabto 是一个用于实现无线局域网实时通信的 npm 包。该应用程序通过利用无线局域网,使您在设备间实现低延时通信。
unabto 允许您快速搭建一个可靠的、低延迟的实时通信系统,它特别适用于需要实时交流的场景,如游戏、音视频通话以及在线协作等等。
安装
使用 npm 安装 unabto 包:
--- ------- ------
基本用法
简单的服务器
unabto 主要由两个部分组成:服务器端和客户端。
首先让我们创建一个简单但可用的 unabto 服务器:
----- ------ - ------------------ ----- ------ - --------------------- -------- ------------ --------- ----------- ---- ------- --- ----------------------- -------- -- - ----- ------- - ----------------- ------------------- ---------- ------------------------------------- --- ------------------- -- -- - ------------------- ------ -- --------- -- ---- --------------------------- ---
这段代码中,我们创建了一个夸平台的 unabto 服务器,由于它是异步的,所以我们也应该监听相关的事件。
其中,我们通过传递 product、deviceId 和 key 参数来创建唯一的一个安全标识符。如果您没有设置这些参数,unabto 会自动生成一个标识符。
简单的客户端
现在,让我们来创建一个简单的 unabto 客户端来连接到服务器:
----- ------ - ------------------ ----- ------ - --- --------------- -------- ------------ --------- ----------- ---- -------- ----- ------------ ----- ---- --- --------------- -- - -- ----- - ------ --------------------- -- ---- --------- ----- - ------------------- -- --------- -- --------- --- ----------------------- -- -- - ------------------- -- --------- -- --------- --- ------------------ -- -- - ------------------- -- ------------ ---- --------- ---
在这里,我们创建了一个客户端并传递必要的参数。与服务器端一样,我们也应该监听相应的事件。
进阶用法
unabto 还提供了许多高级用法,让我们来逐一了解它。
虚拟端口
虚拟端口允许您在 unabto 系统中创建一个唯一的定义,通过该定义您可以在各种不同类型的设备间传递数据。它们是多样化的接口,包含一个隧道头和预定义的一定数量数据。
----- ------ - ------------------ ----- ------ - --------------------- -------- ------------ --------- ----------- ---- ------- --- ---------------------- -- - -- ------------------ --- -- - ----- ---- - ------------------- ----- ---- - -------------------------- --------------------- ------- ----------------- - --- ----------------------- -------- -- - ----- ------- - ----------------- ------------------- ---------- ------------------------------------- --- ------------------- -- -- - ------------------- ------ -- --------- -- ---- --------------------------- --- ----- ------ - --- --------------- -------- ------------ --------- ----------- ---- -------- ----- ------------ ----- ---- --- --------------- -- - -- ----- - ------ --------------------- -- ---- --------- ----- - ------------------- ----- -- - ------------------------------------ ---------------- --------------------------------------- --------- --------------------------- -- - ------------------------ ---------- --- --- --- ----------------------- -- -- - ------------------- -- --------- -- --------- --- ------------------ -- -- - ------------------- -- ------------ ---- --------- ---
在这个例子中,我们创建了两个事件侦听器,一个是服务器用于侦听客户机连接到服务器的事件,其它的是用于监听客户端已经连接的事件。由于我们实现了虚拟端口,在服务器上我们定义了一个 onRequest 事件处理程序,用于处理客户端请求数据的函数。在客户机端,我们定义了一个 client.request 用于发送请求。
安全性
unabto 本身是安全的,但在一些极低的场景中,这种安全性可能不够充分且不安全。这时候,我们需要使用一种技术叫做 SSL(Secure Sockets Layer,数据安全网路层),它是基于 TCP/IP 协议之上的一种安全协议。
您可以使用以下方法配置 unabto SSL:
----- ----- - ------------------ ----- -- - -------------- ----- ------- - - ---- ---------------------------------- ----- ---------------------------------- -- ----- ------ - --------------------- -------- ------------ --------- ----------- ---- -------- ---- ------- --- ----------------------- -------- -- - ----- ------- - ----------------- ------------------- ---------- ------------------------------------- --- ------------------- -- -- - ------------------- ------ -- --------- -- ---- --------------------------- --- ----- ------ - --- --------------- -------- ------------ --------- ----------- ---- -------- ----- ------------ ----- ----- ---- ---- --- --------------- -- - -- ----- - ------ --------------------- -- ---- --------- ----- - ------------------- -- --------- -- --------- --- ----------------------- -- -- - ------------------- -- --------- -- --------- --- ------------------ -- -- - ------------------- -- ------------ ---- --------- ---
此例子说明了基于 SSL 的 unabto 配置和传输过程。
结论
unabto 是一个简单易用的 npm 包,适用于无线局域网实时通信场景,无论您是想开发实时游戏、音视频通话、在线协作还是其它非常规应用程序,unabto 都是一个很棒的选择。在这篇文章中,我们详细介绍了 unabto 的基本用法、进阶用法以及安全性等方面。另外,我们还提供了示例代码,让您在使用时可以更快地上手。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60056bf981e8991b448e5ad1