Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

WebSocket API 개요

WebSocket에 대해 알아보고 WebSocket과 함께 WebSocket을 사용하는 방법을 Juniper Mist™.

Juniper Mist 네트워크에서 WebSocket을 사용할 수 있습니다. WebSocket 프로토콜은 클라이언트와 서버 간의 양방향 통신 세션을 열 수 있습니다. 서버에 메시지를 보내고 응답을 위해 서버를 폴링할 필요 없이 실시간 이벤트 기반 응답을 받을 수 있습니다. 예를 들어, Websocket은 브라우저 새로 고침을 피하려는 상황에서 매우 유용합니다.

초기 클라이언트 요청 및 서버 응답은 HTTP 프로토콜을 사용하여 WebSocket 통신을 설정합니다. 그때부터 클라이언트는 하나 이상의 주제(스트리밍 채널)를 구독하여 데이터를 스트리밍할 수 있습니다.

사용자와 다른 관리자는 실시간 데이터 값을 반영해야 하는 데이터 시각화 대시보드 또는 맵과 같은 매우 구체적인 사용 사례에서 WebSocket을 사용할 수 있습니다.

예제

  • Juniper Mist 액세스 포인트(AP)의 실시간 상태와 BLE(Bluetooth Low Energy) 자산의 실시간 위치 데이터로 사용자 지정 대시보드를 채웁니다.

  • 디바이스 데이터 및 통계(예: 패킷 전송 및 수신)를 Grafana와 같은 외부 운영 대시보드로 매시간 스트리밍합니다. 디바이스 통계는 강력하지만 쉽게 구문 분석하여 표시할 원하는 데이터를 추상화할 수 있습니다.

  • 페이지를 새로 고칠 필요 없이 패킷 캡처(PCAP)가 발생할 때 표시합니다.

WebSocket API 엔드포인트

API 엔드포인트는 조직이 연결된 글로벌 리전에 따라 다릅니다.

표 1: 글로벌 지역별 엔드포인트

서비스 유형

글로벌 01

글로벌 02

글로벌 03

글로벌 04

글로벌 05

유럽, 중동 및 아프리카 01

유럽, 중동 및 아프리카 02

유럽, 중동 및 아프리카 03

유럽, 중동 및 아프리카 04

APAC 01

APAC 02

APAC 03

관리 포털 api-ws.mist.com api-ws.gc1.mist.com api-ws.ac2.mist.com api-ws.gc2.mist.com

api-ws.gc4.mist.com

api-ws.eu.mist.com api-ws.gc3.mist.com api-ws.ac6.mist.com api-ws.gc6.mist.com api-ws.ac5.mist.com api-ws.gc5.mist.com api-ws.gc7.mist.com
웹소켓 API

api.mist.com

api.gc1.mist.com

api.ac2.mist.com

api.gc2.mist.com

api.gc4.mist.com

api.eu.mist.com

api.gc3.mist.com

api.ac6.mist.com

api.gc6.mist.com

api.ac5.mist.com

api.gc5.mist.com

api.gc7.mist.com

인증 옵션

Juniper Mist WebSocket API에 연결하려면 인증이 필요합니다. 다음과 같은 방법을 사용할 수 있습니다.

  • API 토큰 생성

  • Juniper Mist 로그인 자격 증명을 사용한 HTTP 로그인

  • 외부 OAuth2 제공자에 대한 API 호출

WebSocket 스트리밍 채널

Juniper Mist 클라이언트와의 스트리밍 연결을 설정한 후 클라이언트는 메시지를 보내고 받기 위해 하나 이상의 채널을 구독해야 합니다. 메시지는 양방향 WebSocket 프로토콜을 통해 앞뒤로 이동합니다. 채널에서 메시지 송수신을 중지하려면 채널 구독을 취소할 수 있습니다.

메모:

모든 채널에서는 사이트 ID를 지정해야 합니다. Juniper Mist 포털에서 사이트 ID를 찾으려면 왼쪽 메뉴에서 조직 > 사이트 구성을 선택한 다음 사이트를 클릭합니다.

로그인하면 각 WebSocket에 대한 추가 정보를 볼 수 있습니다. 먼저 다음 섹션에 제공된 WebSocket 설명서에 대한 웹 링크로 이동합니다.

WebSocket 샘플 및 설명서

앞서 언급했듯이 WebSocket 프로토콜은 클라이언트와 서버 간의 통신에 사용됩니다. 서버에 메시지를 보내고 이벤트 기반 응답을 받을 수 있습니다. 다음 표에는 샘플 요청 및 응답과 WebSocket 설명서에 대한 링크가 포함되어 있습니다.

메모:

설명서 링크는 로그인한 지역(클라우드)에 따라 다릅니다. 아래 표에는 Global 01 클라우드에 대한 링크가 포함되어 있습니다.

표 2: WebSocket 설명서
이름 , 스트리밍 채널, 샘플 요청/응답 및 문서
맵별 BLE 자산 검색 /sites/:site_id/stats/maps/:map_id/discovered_assets

맵에서 BLE 자산을 검색하려면 다음 요청을 실행합니다.

요청:

GET /api/v1/sites/:site_id/stats/maps/:map_id/discovered_assets

응답:

[
    {
        "mac": "6fa474be7xxx",
        "device_name": "[TV] UN65JU6xxx",
        "x": 60,
        "y": 80,
        "manufacture": "Apple",
        "last_seen": 1428939600,

        // optionally populated
        "ibeacon_uuid": "f3f17139-704a-f03a-2786-0400279e37c3",
        "ibeacon_major": 13,
        "ibeacon_minor": 138,
        "eddystone_uid_namespace": "2818e3868dec25629ede",
        "eddystone_uid_instance": "5c5b35000001",
        "eddystone_url_url": "https://www.abc.com",
        "mfg_company_id": 935,
        "mfg_data": "648520a1020000",
        "duration": 120

    }
]

자세한 내용은 맵으로 사이트 검색 자산 가져오기를 참조하십시오.

BLE 자산 RF 글래스 정보 /sites/:site_id/assets/:asset_id/diag

BLE 자산에 대한 RF Glass 정보를 가져오려면 다음 요청을 발행하십시오.

요청:

{
    "subscribe": "/sites/:site_id/assets/:asset_id/diag"
}

응답:

{
    "event": "data",
    "channel": "/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/assets/115825352113/diag",
    "data": {
        "map_id": "845a23bf-bed9-e43c-4c86-6fa474be7ae5",
        "grid": {
            "topleft_x_m": -0.86,
            "topleft_y_m": 9.2486,
            "size_m": 0.5,
            "width": 40,
            "height": 40,
            "data": "<base-64 encoded data intended to be interpreted by atob() in JS>",
        },
        "motion": false,

        "vbles": [
            {
                "type": "device",
                "id": "00000000-0000-0000-1000-5c5b350e0060",
                "orientation": 90,
                "xyz_m": [ 5.79, 4.33, 3.04 ],
                "rssis": [ -52.32, -53, -55, -57, -60.25, null, null, -62, null ]
            },
            {
                "type": "beacon",
                "id": "00000000-0000-0000-1000-e74489000052",
                "xyz_m": [ 8.79, 10.33, 3.04 ],
                "rssi": -59.5
            }
        ],
        "peak": {
            "vble_id": "00000000-0000-0000-1000-e74489000052",
            "max_rssi": -53.428,
            "plf": -73,
            "ple": -21,
            "intercept": -52
        },

        // estimates based on probability surface, we'll always have this
        "raw_xyz_m": [ 18.7486, 10.13269, 0 ],
        "smoothed_xyz_m": [ 18.7486, 10.13269, 0 ],

        "model": "asset",
        "speed": null,
        "direction": null,
        "timestamp": 1501113197.768402,


        // the loudest mote estimate
        "closest_mote_xyz_m": [ 8.79, 10.33, 3.04 ],
        // 3 past consecutive mote estimates
        "adjusted_mote_xyz_m": [ 8.79, 10.33, 3.04 ],
        // another algorithm, more sophisticated
        "vector_mote_xyz_m": [ 8.79, 10.33, 3.04 ]

        //particle reset flags
        "pf_reset": false,
        "pf_hard_reset": false
    }
}

자세한 내용은 위치 - BLE 자산을 참조하십시오.

SDK 클라이언트 RF 투명 정보(SDK 클라이언트 위치 포함) /sites/:site_id/sdkclients/:sdkclient_id/diag

SDK 클라이언트에 대한 RF Glass 데이터를 보려면 다음 요청을 실행합니다.

요청:

{
    "subscribe": "/sites/:site_id/sdkclients/:sdkclient_id/diag"
}

응답:

{
    "event": "data",
    "channel": "/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/sdkclients/de87bf9d-183f-e383-cc68-6ba43947d403/diag",
    "data": {
        "map_id": "845a23bf-bed9-e43c-4c86-6fa474be7ae5",
        "grid": {
            "topleft_x_m": -0.86,
            "topleft_y_m": 9.2486,
            "size_m": 0.5,
            "width": 40,
            "height": 40,
            "data": "<base-64 encoded data intended to be interpreted by atob() in JS>",
        },
        "motion": true,

        "avg_duration": 3,
        "vbles": [
            {
                "type": "device",
                "id": "00000000-0000-0000-1000-5c5b350e0060",
                "orientation": 90,
                "xyz_m": [ 5.79, 4.33, 3.04 ],
                "rssis": [ -52.32, -53, -55, -57, -60.25, null, null, -62, null ]
            },
            {
                "type": "beacon",
                "id": "00000000-0000-0000-1000-e74489000052",
                "xyz_m": [ 8.79, 10.33, 3.04 ],
                "rssi": -59.5
            }
        ],
        "peak": {
            "vble_id": "00000000-0000-0000-1000-e74489000052",
            "max_rssi": -53.428,
            "plf": -73,
            "ple": -21,
            "intercept": -52
        },

        // estimates based on probability surface, we'll always have this
        "raw_xyz_m": [ 18.7486, 10.13269, 0 ],
        "smoothed_xyz_m": [ 18.7486, 10.13269, 0 ],

        // available only if present
        "app_xyz_m": [18.714, 10.1102, 0],
        "dead_reckoning_xyz_m": [18.791, 10.1613, 0],
        "dead_reckoning_raw_xyz_m": [18.157, 10.110, 0],

        "model": "iPod7",
        "os": "",
        "version": "10.2.1",
        "beams_count": 12,
        "beams_mean": 4,
        "missing_beams": 16,
        "speed": 1,
        "direction": 235,
        "timestamp": 1501113999.758902,

        // the loudest mote estimate
        "closest_mote_xyz_m": [ 8.79, 10.33, 3.04 ],
        // 3 past consecutive mote estimates
        "adjusted_mote_xyz_m": [ 8.79, 10.33, 3.04 ],
        // another algorithm, more sophisticated
        "vector_mote_xyz_m": [ 8.79, 10.33, 3.04 ]

        //particle reset flags
        "pf_reset": false,
        "pf_hard_reset": false

        "latency": 123
    }
}

자세한 내용은 맵으로 사이트 SDK 통계 가져오기사이트 SDK 통계 가져오기를 참조하십시오.

Wi-Fi(클라이언트 위치) /sites/:site_id/stats/maps/:map_id/클라이언트

무선 클라이언트 위치를 보려면 다음 요청을 실행합니다.

요청:

GET /api/v1/sites/:site_id/stats/maps/:map_id/clients

응답:

[
    {
        "mac": "5684dae9ac8b",
        "last_seen": 1470417522,

        "username": "david@mist.com",
        "hostname": "David-Macbook",
        "os": "OS X 10.10.2",
        "manufacture": "Apple",
        "family": "iPhone",
        "model": "6S",

        "ip": "192.168.1.8",
        "ip6": "2001:db8:3333:4444:5555:6666:7777:8888",

        "ap_mac": "5c5b35000010",
        "ap_id": "0000000-0000-0000-1000-5c5b35000010",
        "ssid": "corporate",
        "wlan_id": "be22bba7-8e22-e1cf-5185-b880816fe2cf",
        "psk_id": "732daf4e-f51e-8bba-06f9-b25cd0e779ea",

        "uptime": 3568,
        "idle_time": 3,
        "power_saving": true,
        "band": "24",
        "proto": "a",
        "key_mgmt": "WPA2-PSK/CCMP",
        "dual_band": false,

        "channel": 7,
        "vlan_id": "",
        "airespace_ifname": "",
        "rssi": -65,
        "snr": 31,
        "tx_rate": 65,
        "rx_rate": 65,

        "tx_bytes": 175132,
        "tx_bps": 6,
        "tx_packets": 1566,
        "tx_retries": 500,
        "rx_bytes": 217416,
        "rx_bps": 12,
        "rx_packets": 2337,
        "rx_retries": 5,

        "map_id": "63eda950-c6da-11e4-a628-60f81dd250cc",
        "x": 53.5,
        "y": 173.1,
        "x_m": 5.35
        "y": 17.31
        "num_locating_aps": 3,

        "is_guest": true,
        "guest": {
            "authorized": True,
            "authorized_time": 1428939300,
            "authorized_expiring_time": 1429109300

            "name": "John",
            "email": "john@abc.com",
            "company": "ABC",
            "field1": "whatever",
            "cross_site": True
        },
        "airwatch": {
            "authorized": True
        },
        "_ttl": 250
    }
]

자세한 내용은 Get Site Wireless Client StatsGet Site Wireless Client Stats by Map을 참조하십시오.

Wi-Fi 클라이언트 통계 /sites/:site_id/stats/clients

무선 클라이언트 통계를 가져오려면 다음 요청을 실행합니다.

요청:

GET /api/v1/sites/:site_id/stats/clients

응답:

[
    {
        "mac": "5684dae9ac8b",
        "last_seen": 1470417522,

        "username": "david@mist.com",
        "hostname": "David-Macbook",
        "os": "OS X 10.10.2",
        "manufacture": "Apple",
        "family": "iPhone",
        "model": "6S",

        "ip": "192.168.1.8",
        "ip6": "2001:db8:3333:4444:5555:6666:7777:8888",

        "ap_mac": "5c5b35000010",
        "ap_id": "0000000-0000-0000-1000-5c5b35000010",
        "ssid": "corporate",
        "wlan_id": "be22bba7-8e22-e1cf-5185-b880816fe2cf",
        "psk_id": "732daf4e-f51e-8bba-06f9-b25cd0e779ea",

        "uptime": 3568,
        "idle_time": 3,
        "power_saving": true,
        "band": "24",
        "proto": "a",
        "key_mgmt": "WPA2-PSK/CCMP",
        "dual_band": false,

        "channel": 7,
        "vlan_id": "",
        "airespace_ifname": "",
        "rssi": -65,
        "snr": 31,
        "tx_rate": 65,
        "rx_rate": 65,

        "tx_bytes": 175132,
        "tx_bps": 6,
        "tx_packets": 1566,
        "tx_retries": 500,
        "rx_bytes": 217416,
        "rx_bps": 12,
        "rx_packets": 2337,
        "rx_retries": 5,

        "map_id": "63eda950-c6da-11e4-a628-60f81dd250cc",
        "x": 53.5,
        "y": 173.1,
        "x_m": 5.35
        "y": 17.31
        "num_locating_aps": 3,

        "is_guest": true,
        "guest": {
            "authorized": True,
            "authorized_time": 1428939300,
            "authorized_expiring_time": 1429109300

            "name": "John",
            "email": "john@abc.com",
            "company": "ABC",
            "field1": "whatever",
            "cross_site": True
        },
        "airwatch": {
            "authorized": True
        },
        "_ttl": 250
    }
]
자세한 내용은 사이트 무선 클라이언트 통계 가져오기를 참조하십시오.
연결되지 않은 클라이언트 /sites/:site_id/stats/maps/:map_id/unconnected_clients

연결되지 않은 클라이언트의 위치를 가져오려면 다음 요청을 실행합니다.

요청:

GET /api/v1/sites/:site_id/stats/maps/:map_id/unconnected_clients

응답:

[
    {
        "mac": "5684dae9ac8b",
        "ap_mac": "5c5b350e0410",
        "map_id": "ea77be98-ab51-4ff8-a863-ac3c8e1b1c3a",
        "x": 60,
        "y": 80,
        "rssi": -75.0,
        "manufacture": "Apple",
        "last_seen": 1428939600
    }
]

자세한 내용은 List Site Unconnected Client Stats를 참조하십시오.

장치 /sites/:site_id/devices

특정 사이트에 대한 장치 목록을 가져오려면 다음을 실행합니다.

요청:

GET /api/v1/sites/:site_id/devices

응답:

[
    {
        "model": "AP41",
        "hw_rev": "0",
        "map_id": "01b04bbe-9687-11e8-a5a9-346895ed1b7d",
        "orientation": 0,
        "org_id": "476057fe-cebb-4be9-9c15-caf1f09d95e0",
        "site_id": "eaa6b2b7-88cd-41ea-8150-9b46b6779235",
        "mac": "5c5b350e0001",
        "modified_time": 1533206823,
        "created_time": 1533196761,
        "tag_id": 107,
        "tag_uuid": "9c557d6a-8a5e-11e6-b1db-0242ac110004",
        "serial": "1002710010001",
        "type": "ap",
        "id": "00000000-0000-0000-1000-5c5b350e0001",
        "name": "ap-001"
    }
]

자세한 내용은 사이트 장치 나열을 참조하십시오.

디바이스 통계 /sites/:site_id/stats/devices

특정 디바이스에 대한 현재 통계를 보려면 다음을 실행합니다.

요청:

GET /api/v1/sites/:site_id/stats/devices

응답:

[
    {
        # information from manufacturing, immutable
        "mac": "5c5b35000010",
        "model": "AP200",
        "type": "ap",
        "serial": "FXLH2015170017",
        "last_seen": 1470417522,

        # configurations
        "name": "conference room",
        "map_id": "63eda950-c6da-11e4-a628-60f81dd250cc",
        "x": 53.5,
        "y": 173.1,
        "radio_config": {
            "band_24": {
                "channel": 0,
                "bandwidth": 20,
                "power": 0,
                "dynamic_chaining_enabled": false,
                "tx_chain": 4,
                "rx_chain": 4
            },
            "band_5": {
                "channel": 0,
                "bandwidth": 40,
                "power": 0,
                "dynamic_chaining_enabled": false,
                "tx_chain": 1,
                "rx_chain": 4
            },
            "band_6": {
                "channel": 0,
                "bandwidth": 40,
                "power": 0,
                "tx_chain": 1,
                "rx_chain": 4
            },
            "scanning_enabled": true
        },
        "ip_config": {
            "type": "static",
            "ip": "10.2.1.1",
            "netmask": "255.255.255.0",
            "gateway": "10.2.1.254",
            "dns": [ "8.8.8.8", "4.4.4.4" ],
            "dns_suffix": [ ".mist.local", ".mist.com" ]
        },
        "ble_config": {
            "power_mode": "custom",
            "power": 10,
            "beacon_rate_model": "custom",
            "beacon_rate": 3,
            "beam_disabled": [ 1, 3, 6 ]
        },
        "led": {
            "enabled": true,
            "brightness": 255
        },

        # current stat
        "status": "connected",
        "version": "1.0.0",
        "ip": "10.2.9.159", // first IP
        "ext_ip": "73.92.124.103",
        "num_clients": 10,
        "uptime": 13500,
        "tx_bps": 634301,
        "rx_bps": 60003,
        "tx_bytes": 211217389682,
        "tx_pkts": 812204062,
        "rx_bytes": 8515104416,
        "rx_pkts": 57770567,

        "locating": false,

        "radio_stat": {
            "band_24": {
                "mac": "5c5b350004a0"
                "channel": 6,
                "bandwidth": 20,
                "power": 19,
                "num_clients": 6,
                "tx_bytes": 211166512114,
                "tx_pkts": 812058566,
                "rx_bytes": 8504737800,
                "rx_pkts": 57731964
            },
            "band_5": {
                "mac": "5c5b350004b0"
                "channel": 44,
                "bandwidth": 80,
                "power": 15,
                "num_clients": 4,
                "tx_bytes": 50877568,
                "tx_pkts": 145496,
                "rx_bytes": 10366616,
                "rx_pkts": 38603
            }
        },
        "port_stat": {
            "eth0": {
                "up": true,
                "speed": 1000,
                "full_duplex": true,
                "tx_bytes": 2056,
                "tx_pkts": 670,
                "rx_bytes": 2056,
                "rx_pkts": 670,
                "rx_errors": 0,
            },
            "eth1": {
                "up": false
            },
            "module": {
                "up": false
            }
        },
        # `ports` is like `port_stat` but is an array.
        # This array can be converted to a dict using (port_id, node) as key.
        "ports": [
            // Each port object is same as `GET /api/v1/sites/:site_id/stats/ports/search` result object,
            // except that org_id, site_id, mac, timestamp are removed
            {
                "port_id": "ge-0/0/1",
                "node": "node0",        // Absent if this device is standalone
                .
                .
                .
            }            
        ]
        "ip_stat": {
            "ip": "10.2.1.1",
            "netmask": "255.255.255.0",
            "gateway": "10.2.1.254",
            "ip6": "2607:f8b0:4005:808::2004",
            "netmask6": "/32",
            "gateway6": "2607:f8b0:4005:808::1",
            "dns": [ "8.8.8.8", "4.4.4.4" ],
            "dns_suffix": [ ".mist.local", ".mist.com" ],
            "ips": {
                "vlan1": "10.2.1.1/24,2607:f8b0:4005:808::1/32",
                "vlan193": "10.73.1.31/16",
                "vlan3157": "10.72.11.14/24"
            }
        },
        "ble_stat": {
            "power": 10,
            "beacon_rate": 3,
            "uuid": "ada72f8f-1643-e5c6-94db-f2a5636f1a64",
            "major": 12345,
            "minors": [ 201, 202, 203, 204, 205, 206, 207, 208 ],
            "tx_pkts": 135135135,
            "tx_bytes": 5231513353,
            "tx_resets": 0,
            "rx_pkts": 135,
            "rx_bytes": 135,

            "ibeacon_enabled": true,
            "ibeacon_uuid": "f3f17139-704a-f03a-2786-0400279e37c3",
            "ibeacon_major": 13,
            "ibeacon_minor": 138,

            "eddystone_uid_enabled": false,
            "eddystone_uid_namespace": "2818e3868dec25629ede",
            "eddystone_uid_instance": "5c5b35000001",
            "eddystone_uid_freq_msec": 200,

            "eddystone_url_enabled": true,
            "eddystone_url_url": "https://www.abc.com",
            "eddystone_url_freq_msec": 100
        },
        "l2tp_stat": {
            "7dae216d-7c98-a51b-e068-dd7d477b7216": {
                "wxtunnel_id": "7dae216d-7c98-a51b-e068-dd7d477b7216",
                "state": "established_with_sessions",
                "uptime": 135,
                "sessions: [
                    {
                        "remote_id": "vpn1",
                        "state": "established",
                        "remote_sid": 13,
                        "local_sid": 31
                    }
                ]
            }
        },
        "lldp_stat": {
            "system_name": "TC2-OWL-Stack-01",
            "system_desc": "HP J9729A 2920-48G-POE+ Switch",
            "mgmt_addr": "10.1.5.2",
            "port_desc": "2/26",
            "chassis_id": "63:68:61:73:73:69",
            "lldp_med_supported": false,
            "power_request_count": 3,
            "power_allocated": 15500,
            "power_requested": 25500,
            "power_draw": 15000
        },
        "power_src": "PoE 802.3af",
        "power_budget": -12000,
        "power_constrained": true,
        "power_opmode": "[20] 6GHz(2x2) 5GHz(4x4) 2.4GHz(2x2).",

        "switch_redundancy": {
            "num_redundant_aps": 1,
        },

        // IoT stats
        "iot_stat": {
            "DI2": {
                "value": 0
            }
        },

        // Environment stats
        "env_stat": {
            "cpu_temp": 51,
            "ambient_temp": 39,
            "humidity": 11,
            "attitude": 0,
            "pressure": 1015
            "accel_x": -0.012,
            "accel_y": 0.004,
            "accel_z": -1.012,
            "magne_x": 0.0,
            "magne_y": 1.3,
            "magne_z": 0.0,
            "vcore_voltage": 0
        },
        "mount": 'faceup',


        // ESL Stats
        "esl_stat": {
            "up": true,
            "type": "imagotag",  // if up

            // following are type-dependent
            "connected": true,
            "channel": 3,
        },

        // for a base AP
        "mesh_downlinks": {
            "00000000-0000-0000-1000-5c5b356be59f": {
                "site_id": "0e525da3-6033-428c-9a51-9f652f643baf",
                "band": "24",
                "proto": "a",
                "channel": 7,

                "last_seen": 1470417522,
                "idle_time": 3,

                "rssi": -65,
                "snr": 31,
                "tx_rate": 65,
                "rx_rate": 65,

                "tx_bytes": 175132,
                "tx_bps": 6,
                "tx_packets": 1566,
                "tx_retries": 500,
                "rx_bytes": 217416,
                "rx_bps": 12,
                "rx_packets": 2337,
                "rx_retries": 5
            }
        },

        // for a remote/relay AP
        "mesh_uplink": {
            "uplink_ap_id": "00000000-0000-0000-1000-5c5b35000010",
            "uplink_site_id": "1916d52a-4a90-11e5-8b45-1258369c38a9",
            "band": "24",
            "proto": "a",
            "channel": 7,

            "last_seen": 1470417522,
            "idle_time": 3,

            "rssi": -65,
            "snr": 31,
            "tx_rate": 65,
            "rx_rate": 65,

            "tx_bytes": 175132,
            "tx_bps": 6,
            "tx_packets": 1566,
            "tx_retries": 500,
            "rx_bytes": 217416,
            "rx_bps": 12,
            "rx_packets": 2337,
            "rx_retries": 5
        },
        "fwupdate": {
            "timestamp": 1428949501,
            "status": "inprogress",
            "status_id": 5,
            "progress": 10
        },

        "last_trouble": {
            "code": "03",
            "timestamp": 1428949501
        },

        // if RADSec is enabled, device certs will be automatically generated and managed
        // with the expiration time exposed
        "cert_expiry": 1534534392
        "locked": false,
        "auto_placement": {
            "x": 53.5,
            "y": 173.1,
            "x_m": 5.35,
            "y_m": 17.31,
            "status": "localized",
            "status_detail": "localized",
            "use_auto_placement": false,
            "recommended_anchor": false,
            "info": {
                "cluster_number": 0,
                "orientation_state": 0,
                "probability_surface": {
                    "radius": 2.1,
                    "x": 5.65,
                    "y": 17.10
                }
            },
            "_id": "5c5b35000010"
        }
    }
]

자세한 내용은 사이트 디바이스 통계 가져오기를 참조하십시오.

디바이스의 명령 /sites/:site_id/devices/:d evice_id/cmd

디바이스 명령 출력을 구독하려면 다음 요청을 실행하십시오.

요청:

{
    "subscribe": "/sites/:site_id/devices/:device_id/cmd"
}

응답:

{
    "event": "data",
    "channel": "/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd",
    "data": {
        "session": "session_id",
        "raw": "64 bytes from 23.211.0.110: seq=8 ttl=58 time=12.323 ms\n"
    }
}

자세한 내용은 디바이스 - 명령 출력을 참조하세요.

스트리밍 PCAP /sites/:site_id/pcaps

스트리밍 패킷 캡처(PCAP)를 구독하려면 다음 요청을 발행하십시오.

요청:

{
    subscribe: "/sites/:site_id/pcaps"
}

응답:

{
    "event": "data"
    "channel": "/sites/:site_id/pcaps"
    "data": {
         "capture_id": "6b1be4fb-b239-44d9-9d3b-cb1ff3af1721"
         "pcap_dict": {
             "channel_frequency": 2412,
             "channel": "1",
             "datarate": "1.0 Mbps",
             "rssi": -75, 
             "dst": "78:bd:bc:ca:0b:0a",
             "src": "18:b8:1f:4c:91:c0",
             "bssid": "18:b8:1f:4c:91:c0",
             "frame_type": "Management", 
             "frame_subtype": "Probe Response",
             "proto": "802.11", 
             "ap_mac": "d4:20:b0:81:99:2e", 
             "direction": "tx", 
             "timestamp": 1652246543, 
             "length": 416.0,
             "interface": "radiotap",
             "info": "1652246544.467733 1683216786us tsft 1.0 Mb/s 2412 MHz 11g -75dBm signal -82dBm noise antenna 0 Probe Response (ATTKmsWiVS) [1.0* 
                      2.0* 5.5* 11.0* 18.0 24.0 36.0 54.0 Mbit] CH: 2, PRIVACY\\n",
         }, 
        "pcap_raw":         "1MOyoQIABAAAAAAAAAAAAP//AAABAAAAEEh7Yh5VBwCgAQAAoAEAAAAAKwBvCADAAQAAAIw7reCS2VNkAAAAABACbAmABLWuAAEAEBgAAwACAABQADoBeL28ygsKGLgfTJHAGLgfTJHAcIZ2WDlBJQAAAGQAERUACkFUVEttc1dpVlMBCIKEi5YkMEhsAwECBwZVUyABCx4gAQAjAhkAKgEEMgQMEhhgMBQBAAAPrAQBAAAPrAQBAAAPrAIMAAsFAQAbAABGBTIIAQAALRqtCR////8AAAAAAAAAAAAAAAAAAAAAAAAAAD0WAggVAAAAAAAAAAAAAAAAAAAAAAAAAH8IBAAIAAAAAEDdkwBQ8gQQSgABEBBEAAECEDsAAQMQRwAQn2481frn3KT+uGod2ERx+RAhAAtBcnJpcywgSW5jLhAjAApCR1cyMTAtNzAwECQACkJHVzIxMC03MDAQQgAKQkdXMjEwLTcwMBBUAAgABgBQ8gQAARARAA5BcnJpcyBXaXJlbGVzcxAIAAIgCBA8AAEBEEkABgA3KgABIN0JABAYAgEQHAAA3RgAUPICAQGEAAOkAAAnpAAAQkNeAGIyLwAzjakr\"

}

자세한 내용은 PCAP를 참조하세요.