1. 简介
@iotize/device-com-socket.node 是一个基于 WebSocket 协议实现的套接字库,专门用于浏览器和服务器之间进行二进制数据的通信。该库支持多种传输协议,包括 TCP、UDP 和模拟串口等。
2. 安装
可以通过 npm
安装该包,如下所示:
npm install @iotize/device-com-socket.node
3. 示例
3.1 建立连接
在使用本库之前,需要先建立连接。建立连接的方式,与浏览器和服务器之间通信的方式有关。下面讲解常见的 TCP/IP 连接和 WebSocket 连接方式。
3.1.1 TCP/IP 连接
首先,创建一个 TCP/IP 连接的配置对象,还需传入目标服务器 IP 地址和端口号。代码如下:
const TcpIpConfig = require("@iotize/device-com-socket.node/tcpip/config").TcpIpConfig; const config = new TcpIpConfig({ host: "127.0.0.1", // 服务器 IP port: 8080 // 服务器端口号 });
然后,使用该配置创建一个 TcpIpSocket
连接对象,并调用 connect()
方法进行连接。
-- -------------------- ---- ------- ----- ----------- - ------------------------------------------------------------------- ----- ------ - --- -------------------- ------------------------ -- - -- ---- ---------------- -- - -- ---- --
3.1.2 WebSocket 连接
对于 WebSocket 连接方式,也需要先创建一个连接配置对象。其中,需要传入 WebSocket 的 URL 地址。代码如下:
const WebSocketConfig = require("@iotize/device-com-socket.node/websocket/config").WebSocketConfig; const config = new WebSocketConfig({ url: "ws://localhost:8080" // WebSocket 地址 });
同样,创建一个 WebSocketSocket
连接对象,并调用 connect()
方法进行连接。
-- -------------------- ---- ------- ----- --------------- - --------------------------------------------------------------------------- ----- ------ - --- ------------------------ ------------------------ -- - -- ---- ---------------- -- - -- ---- --
3.2 发送数据
建立连接后,可以通过 send()
方法发送数据。默认情况下,该方法接收一个 ArrayBuffer
类型的参数作为发送的数据。
3.2.1 发送字符串
若要发送字符串,则需要将字符串转换为 ArrayBuffer
。代码如下:
-- -------------------- ---- ------- ----- --- - ------- -------- -- ------- -- ------- ----------- ----- ------ - --- -------------------------- --------------------------- -- - -- ---- ---------------- -- - -- ---- --
3.2.2 发送 JSON
若要发送 JSON 数据,则需要将 JSON 对象转换为 ArrayBuffer
。代码如下:
-- -------------------- ---- ------- ----- ---- - - --- -- ----- ----- -- -- - ---- --- ----------- ----- ------ - --- ------------------------------------------- --------------------------- -- - -- ---- ---------------- -- - -- ---- --
3.3 接收数据
连接建立后,可以通过 onData()
方法监听接收到的数据。默认情况下,该方法接收一个 ArrayBuffer
类型的参数作为接收到的数据。
socket.onData((buffer) => { const str = new TextDecoder().decode(buffer); // 转换为字符串 console.log("Received: ", str); });
3.4 关闭连接
建立的连接可以使用 close()
方法关闭。
socket.close().then(() => { // 连接已关闭 }).catch((error) => { // 关闭失败 })
4. 总结
本文介绍了 npm 包 @iotize/device-com-socket.node 的使用方法,包括建立连接、发送数据、接收数据和关闭连接等。通过学习本文,读者可以掌握基于 WebSocket 协议实现的套接字库的使用,并在实践中灵活运用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/201964