设备推送(订阅)信息
<p>[TOC]</p>
<h3>接口描述</h3>
<p>RN订阅或获取原生推送的数据</p>
<ul>
<li>获取原生订阅到的设备MQTT数据,可使用原生的<code>RNDeviceDataUpdater</code>进行订阅,主题为:<code>MQTT_MESSAGE</code>。网络端请参考原生订阅,原生订阅mqtt服务的主题为<code>c/33/</code>。</li>
<li>
<p>所有的订阅功能都有‘订阅’和‘取消订阅’两个与原生交互的方法,从RN监听订阅数据的方法中获取原生推送过来的数据。</p>
</li>
<li>其它的方法随开发进行可补充</li>
</ul>
<h3>所属模块</h3>
<p><code>RNDeviceDataUpdater</code></p>
<ul>
<li>
<p><code>RNDeviceDataUpdater</code> 模块中的主题说明:</p>
<p><code>MQTT_MESSAGE</code>: 原生推送MQTT订阅收到的数据
<code>MQTT_STATE</code>: 原生推送当前MQTT订阅的状态</p>
</li>
</ul>
<h3>方法详情</h3>
<pre><code>// 引入原生模块
const dataUpdater = new NativeEventEmitter(NativeModules.RNDeviceDataUpdater);</code></pre>
<pre><code>/**
* 订阅原生的MQTT_MESSAGE数据消息
* @param {string} MQTT_MESSAGE - 订阅的原生主题
* @callback successCallBack-data - 如原生端收到服务端的设备数据推送,将会通过这里推送给RN模块
*/
dataUpdater.addListener('MQTT_MESSAGE', data =&gt; {
let str = data.replace('message:', '');
let responseData = JSON.parse(str);
// console.info('this show state info&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;', new Date())
});</code></pre>
<pre><code>/**
* 通知原生取消MQTT订阅的相关功能
* 这里会停止原生的对应设备的`c/33/`订阅,原生端也会停止对RN端的`MQTT_MESSAGE`及`MQTT_STATE`数据更新
*/
dataUpdater.unSubscribeMqttMessage();</code></pre>
<h3>使用示例</h3>
<pre><code>// 引入原生模块
const dataUpdater = new NativeEventEmitter(NativeModules.RNDeviceDataUpdater);
dataUpdater.addListener('MQTT_MESSAGE', data =&gt; {
let str = data.replace('message:', '');
let responseData = JSON.parse(str);
// console.info('this show state info&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;', new Date())
});</code></pre>
<pre><code>/**
* 取消订阅原生的MQTT_MESSAGE数据消息
*/
dataUpdater.unSubscribeBleMessage();</code></pre>
<h5>备注</h5>