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 엔드포인트는 조직이 연결된 글로벌 리전에 따라 다릅니다.
| 서비스 유형 |
글로벌 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에 연결하려면 인증이 필요합니다. 다음과 같은 방법을 사용할 수 있습니다.
-
Juniper Mist 로그인 자격 증명을 사용한 HTTP 로그인
-
외부 OAuth2 제공자에 대한 API 호출
WebSocket 스트리밍 채널
Juniper Mist 클라이언트와의 스트리밍 연결을 설정한 후 클라이언트는 메시지를 보내고 받기 위해 하나 이상의 채널을 구독해야 합니다. 메시지는 양방향 WebSocket 프로토콜을 통해 앞뒤로 이동합니다. 채널에서 메시지 송수신을 중지하려면 채널 구독을 취소할 수 있습니다.
모든 채널에서는 사이트 ID를 지정해야 합니다. Juniper Mist 포털에서 사이트 ID를 찾으려면 왼쪽 메뉴에서 조직 > 사이트 구성을 선택한 다음 사이트를 클릭합니다.
로그인하면 각 WebSocket에 대한 추가 정보를 볼 수 있습니다. 먼저 다음 섹션에 제공된 WebSocket 설명서에 대한 웹 링크로 이동합니다.
WebSocket 샘플 및 설명서
앞서 언급했듯이 WebSocket 프로토콜은 클라이언트와 서버 간의 통신에 사용됩니다. 서버에 메시지를 보내고 이벤트 기반 응답을 받을 수 있습니다. 다음 표에는 샘플 요청 및 응답과 WebSocket 설명서에 대한 링크가 포함되어 있습니다.
설명서 링크는 로그인한 지역(클라우드)에 따라 다릅니다. 아래 표에는 Global 01 클라우드에 대한 링크가 포함되어 있습니다.
| 이름 | , 스트리밍 채널, | 샘플 요청/응답 및 문서 |
|---|---|---|
| 맵별 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 Stats 및 Get 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를 참조하세요. |