# WebSocket

[WebSocket] 是一种网络协议，它可以在单个 TCP 连接上提供双向通信通道。
WebSocket 协议于 2011 年由 IETF 标准化为 [RFC 6455] 。
其规范定义了两种方案，即 **ws**（WebSocket）和 **wss**（WebSocket Secure），分别用于非安全的和安全的连接。
WebSocket 相对传统的轮询技术具有许多优点，包括较低的延迟、较少的网络流量和更好的可伸缩性。

Neuron WebSocket 插件是一款商用的北向插件，使用户可以将采集的数据推送到 WebSocket 服务器上。

## 添加插件

在**配置 -> 北向应用**，点击 **添加应用** 添加 WebSocket 客户端节点。

## 应用配置

以下是使用 WebSocket 插件配置节点时可用的参数：

| 字段                       | 说明                                                  |
| ------------------------------- | ------------------------------------------------------------ |
| **上报数据格式**                | 上报数据的 JSON 格式：<br /> *values-format*：数据被分成 `values` 和 `errors` 的子对象<br /> *tags-format*：数据被放在一个数组中 |
| **服务器 URL**                  | Websocket 服务器 URL。例如，`ws://localhost:8000` ， `wss://example.io` 。|
| **CA 证书**                     | 签发服务器证书的 CA 的证书。使用 `wss` 协议和自签发证书时，必填。         |
| **客户端证书**                  | 客户端的证书。使用 `wss` 协议且使用双向认证时，必填。                     |
| **客户端私钥**                  | 客户端的私钥。使用 `wss` 协议且使用双向认证时，必填。                     |

## 添加订阅

完成插件的添加和配置后，我们将继续通过订阅南向设备实现数据的转发。

完成设备配置后，在**北向应用**页，点击设备卡片/设备列进入**组列表**页。点击**添加订阅**，完成南向设备和组的设置。订阅完成后，WebSocket 节点将开始接收南向数据。

## 数据上传

Neuron WebSocket 插件作为客户端， 将从设备采集到的数据作以 JSON 形式推送到由**服务器 URL** 参数指定的 WebSocket 服务器上。

上报数据的格式由**上报数据格式**参数控制。有两种格式，即 *tags-format* 和 *values-format* 。
这两种格式与 [MQTT 插件]的相同，请参阅 [MQTT 数据上下行格式]。

## 运行与维护

在设备卡片或设备列，您可点击数据统计图表查看及应用运行情况、接受和发送的数据情况。关于统计字段的说明，见[创建北向应用](../north-apps.md)。

如果设备运行出现任何问题，您可点击 DEBUG 日志图表，此时系统将自动打印该节点的 DEBUG 级别日志，十分钟后将切回系统默认级别日志。稍后，您可点击页面顶部功能栏的**系统信息** -> **日志**查看日志，并进行故障诊断。稍后，您可点击页面顶部功能栏的**系统信息** -> **日志**查看日志，并进行故障诊断。有关系统日志的详细解析，见[管理日志](../../../admin/log-management.md)。




[WebSocket]: https://en.wikipedia.org/wiki/WebSocke://en.wikipedia.org/wiki/WebSocket
[RFC 6455]: https://datatracker.ietf.org/doc/html/rfc6455
[MQTT 插件]: ../mqtt/overview.md
[MQTT 数据上下行格式]: ../mqtt/api.md#tags-format
