跳到主要内容

获取设备实时数据

接口简述

通过 Neptune API 获取 WebSocket 信息,实现订阅实时数据。实现订阅设备实时数据需要[HTTP 接口][连接 WebSocket]两个步骤:

HTTP 请求获取 WebSocket 连接信息

通过 HTTP 接口获得连接 WebSocket 的必备信息

JavaScript 连接 WebSocket 示例代码下载地址: 点击下载

Java 连接 WebSocket 示例代码下载地址: 点击下载

请求地址

/device/websocket

请求方式

GET

请求参数

序号名称必填描述
1app_id开发者账号
2app_secret开发者密码
3uuid设备序列号

请求示例

    // 使用jQuery AJax作为请求提交工具
$.ajax({
type: "get",
url: "https://api.neptune-iiot.net/device/websocket",
dataType: "json",
data: {
app_id: "nep863f8291",
app_secret: "720f8d0d3cf3b38ff190892a7840ad68",
uuid: "0ADF-EF22-838F-122E"
}
});

返回值说明

返回值格式为JSON

序号名称描述
1code请求状态:
200 = 请求成功;
401 = Token授权失败;
1001 = 设备不存在;
2message请求状态描述
3dataWebSocket 连接信息

返回值示例

{
"code": 200,
"message": "",
"data": {
"websocket": "ws://192.168.33.229:61610/stomp",
"clientid": "deviceData/0AD1-8A8A-F591-3965",
"topic": "/topic/wstopic",
"token": "59263e53527d6a37ac55e131"
}
}

连接 WebSocket

连接 WebSocket 获得实时数据

/*Neptune 的实时数据接口采用基于 STOMP 的 WebSocket 方式,请查看如下代码示例:*/

<!-- 引入相关类库 -->

<!--引入 STOMP -->
<script src="https://cdn.bootcss.com/stomp.js/2.3.3/stomp.min.js"></script>

<!--引入 jQuery ,用于 Ajax 请求 -->
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

<script>
window.onload=function() {
// 请求 HTTP 接口,获得连接 WebSocket 的必备信息
$.get({
// HTTP 接口地址
url: "https://api.neptune-iiot.net/device/websocket",
data: {
// 传入 HTTP 的 Token 验证
app_id: "",
// 传入要订阅实时数据的设备 UUID
app_secret: "",
// 设备的 UUID
uuid: ""
},
// 指定返回的数据以 JSON 解析
dataType: "json",
success: function (result) {
// 获取 WebSocket 信息成功
if (result.code === 200) {
// WebSocket 的 URL
var url = result.data.websocket;
// 设备实时数据的 topic
var topic = result.data.topic;
// 所属团队的令牌(Token)
var token = result.data.token;
// stompClient 的 clientid
var clientid = result.data.clientid;

// 创建 STOMP 实例
var stompClient = Stomp.client(url);
// 连接 WebSocket server
stompClient.connect({
login: token,
"client-id": clientid
}, function () {
// 连接成功时,订阅设备数据
stompClient.subscribe(topic, function (result) {
// 获得设备数据,此处为 String 类型
if (result.body) {
// 转换设备数据为 JSON
var message = $.parseJSON(result.body);
/*
数据示例:
{
"uuid": "device_uuid",
"time": "2018-04-12 14:25:20:34",
"data": {
"speed": 20,
"open": true
}
}
*/
}
});
});
} else {
// 弹出错误消息
alert(result.message);
}
}
});
}
</script>