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) 推送的数据格式一致。