Socket.IO
Socket.IO enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.
Socket.IO 可用于浏览器与node.js之间的实时通信。 Socket.IO 将 Websocket 和轮询 (Polling)机制以及其它的实时通信方式封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码。
配置参数 | 取值 | 说明 |
---|---|---|
url | http://iot-api.sensoro.com/iot | Socket.IO 建立连接的服务端地址 |
path | /socket.io | - |
appID | $YOUR_APPID | 提供当前连接的身份信息 |
appID | $YOUR_APPSECRET | 提供当前连接的身份信息 |
一、客户端设置
连接 Socket.IO Server 之前,需要设置 query 参数 appID、appSecret, 可从 IoT 云平台官网的 开发者
页面中得到, 当 error
事件收到authentication error
信息时,请确定填写的 query 参数是否正确。
NodeJS 示例代码如下:
// <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
var socket = io('http://iot-api.sensoro.com/iot', {
path: '/socket.io',
query: {
appID: $YOUR_APPID,
appSecret: $YOUR_APPSECRET
}
});
// 成功建立连接
socket.on('connect', () => {
console.info('connect to server');
});
// 接收传感器数据
socket.on('devices', function(msg){
console.info(msg);
});
socket.on('error', function(error) {
console.info('error event', error);
});
以上代码需先引入 socket.io-client
二、接收传感器数据推送
客户端通过监听 devices
事件接收传感器数据的推送,数据格式与 Webhook(自定义回调URL) 推送的数据格式一致。