Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 WebSocket 流式传输设备数据(用例)

在此示例中,我们将讨论使用 WebSocket 流式传输设备数据Juniper Mist用例。

WebSocket 是一种通过 TCP 连接提供全双工通信的协议。WebSocket API 为客户端提供了一种与终结点通信的方法。Juniper Mist使用此协议将近乎实时的数据流式传输到客户端。客户端将通过订阅频道来请求它想要接收的数据。客户端仅发出一次请求,服务器将在进行更新时将通道数据流式传输到客户端。

这种通信方法非常适合近乎实时地接收事件驱动的数据。它的主要用途是收集设备数据。然后,您和其他网络管理员可以将此数据馈送到自定义事件显示、通知系统、外部日志记录工具等中。

如果组织所需的信息在 Juniper Mist 门户中本机不可用,则使用 WebSocket 特别有用。

在此用例中,我们将展示如何配置客户端以请求和订阅站点的设备统计信息。

使用 WebSocket 需要以下元素:

  • 认证

  • HTTP 标头配置

  • WebSocket 连接 URL (wss://api-ws.mist.com/api-ws/v1/stream)。请根据您的地理位置验证您的 URL。

注意:

重复使用代码块时,请将占位符值替换为实际值,例如 API 令牌、组织 ID、站点 ID、AP 名称等。

与 MIST WebSocket 端点通信

若要与 Juniper Mist WebSocket 终结点通信,请使用名为 Postman 的应用程序。Postman 是一个用于构建和使用 API 的 GUI API 平台。您可以构建进行多个 API 调用的脚本。此 API 还允许您进行 WebSocket 调用。

以下步骤介绍如何连接到Juniper Mist WebSocket,首先将 URL 添加到“连接”按钮旁边的输入框:

  1. 单击连接
    “消息”窗格显示客户端尝试连接并立即断开连接。这是因为Juniper Mist WebSocket 需要身份验证。
  2. 要解决身份验证问题,请向请求添加自定义 HTTP 标头。
    1. 在 KEY 标题下,创建一个新的“授权”密钥。

    2. 在 VALUE 输入框中,输入单词 token 后跟空格,然后输入Juniper Mist授权令牌。

    3. 选中“密钥”列左侧的复选框,使其处于活动状态。

    4. 单击 “连接 ”以建立与 Mist 的 WebSocket 会话。

  3. 连接后,切换到 Postman 中的“邮件”标题。

    在这里,您可以通过订阅设备统计信息流来告知Mist所需的数据。

    以下示例请求指定站点的设备统计数据。

  4. 在“消息”输入框中输入此信息后,单击 “发送”。

    Postman 会用向上箭头显示您的请求,用向下箭头显示Juniper Mist响应。

    以下示例显示了您可以期望在 Juniper Mist 的响应中看到的内容。

    在订阅后的几秒钟内,您应该开始看到以 JSON 格式(默认)流式传输到“消息”窗格中的事件:

    您可以看到以下格式的相同输出:

    • 发短信

      1. {“event”: “data”, “channel”: “/sites/c1947558-268d-4d31-xxxx-xxxxxxxxxxxx/stats/devices”, “data”: “{\”mac\“: \”5c5b35fxxxxx\“, \”last_seen\“: 1686592607, \”uptime\“: 6259614, \”version\“: \”0.9.22801\“, \”_partition\“: 48, \”_offset_apbasic\“: 4639768722, \”ip_stat\“: {\”dns\“: [\“10.10.12.11\”, \“10.10.12.12\”], \“ips\”: {\“vlan12\”: \“10.10.12.25/25,fe80:0:0:0:5e5b:35ff:fef1:5ed8/64\”}, \“网关\”: \“10.10.12.1\”, \“ip6\”: \“fe80:0:0:0:5e5b:35ff:fef1:5ed8\”, \“netmask6\”: \“/64\”, \“ip\”: \“10.10.12.25\”, \“netmask\”: \“255.255.255.128\”, \“dhcp_server\”: \“10.10.12.1\”}, \“ip\”: \“10.10.12.25\”, \“ble_stat\”: {\“tx_pkts\”: 9073, \“tx_bytes\”: 105431, \“rx_pkts\”: 393432193, \“rx_bytes\”: 2772782221, \“tx_resets\”: 0}, \“_time\”: 1686592607.62131}“}

    • [全文]

      1. {“event”: “data”, “channel”: “/sites/c1947558-268d-4d31-xxxx-xxxxxxxxxxxx/stats/devices”, “data”: “{\”mac\“:

      2. \“5c5b35fxxxxx\”, \“last_seen\”: 1686592607, \“正常运行时间\”: 6259614, \“版本\”: \“0.9.22801\”, \“_partition\”: 48,

      3. \“_offset_apbasic\”: 4639768722, \“ip_stat\”: {\“dns\”: [\“10.10.12.11\”, \“10.10.12.12\”], \“ips\”: {\“vlan12\”:

      4. \“10.10.12.25/25,fe80:0:0:0:5e5b:35ff:fef1:5ed8/64\”}, \“网关\”: \“10.10.12.1\”, \“ip6\”:

      5. \“fe80:0:0:0:5e5b:35ff:fef1:5ed8\”, \“netmask6\”: \“/64\”, \“ip\”: \“10.10.12.25\”, \“netmask\”: \“255.255.255.128\”,

      6. \“dhcp_server\”: \“10.10.12.1\”}, \“ip\”: \“10.10.12.25\”, \“ble_stat\”: {\“tx_pkts\”: 9073, \“tx_bytes\”: 105431,

      7. \“rx_pkts\”: 393432193, \“rx_bytes\”: 2772782221, \“tx_resets\”: 0}, \“_time\”: 1686592607.62131}“}

    • XML

      1. {“event”: “data”, “channel”: “/sites/c1947558-268d-4d31-xxxx-xxxxxxxxxxxx/stats/devices”, “data”: “{\”mac\“: \”5c5b35fxxxxx\“, \”last_seen\“: 1686592607, \”uptime\“: 6259614, \”version\“: \”0.9.22801\“, \”_partition\“: 48, \”_offset_apbasic\“: 4639768722, \”ip_stat\“: {\”dns\“: [\“10.10.12.11\”, \“10.10.12.12\”], \“ips\”: {\“vlan12\”: \“10.10.12.25/25,fe80:0:0:0:5e5b:35ff:fef1:5ed8/64\”}, \“网关\”: \“10.10.12.1\”, \“ip6\”: \“fe80:0:0:0:5e5b:35ff:fef1:5ed8\”, \“netmask6\”: \“/64\”, \“ip\”: \“10.10.12.25\”, \“netmask\”: \“255.255.255.128\”, \“dhcp_server\”: \“10.10.12.1\”}, \“ip\”: \“10.10.12.25\”, \“ble_stat\”: {\“tx_pkts\”: 9073, \“tx_bytes\”: 105431, \“rx_pkts\”: 393432193, \“rx_bytes\”: 2772782221, \“tx_resets\”: 0}, \“_time\”: 1686592607.62131}“}

    您将继续收到消息,直到您通过发送消息断开连接或取消订阅频道。

    收到数据后,您可以对它执行任意数量的作,例如:

    • 创建事件的自定义显示或仪表板。

    • 将数据长期存档。

    • 创建自定义监控和警报。

    • 根据结果创建更多自动化。

    有关使用其他自动化工具(如 Python)与 MIST WebSocket 端点通信的示例,请参阅 自动化工具