<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      阿里云物聯網套件(iot)設備間通信(M2M)在web端的實踐

      之前通過nodejs連接到阿里云物聯網mqtt,后又用瀏覽器連接,總結一下:
      由于項目是SPA,使用webpack,關鍵代碼:
      同樣使用mqtt.js之前先install:
       npm install --save mqtt

      然后在main.js導入  

      import mqtt from 'mqtt'

      將mqtt掛載到Vue全局  

      Object.defineProperty(Vue.prototype, 'mqtt', {value: mqtt});

      這時就可以在全局使用mqtt了,于是在App.vue中使用mqtt,由于之前邏輯是nodejs進行連接,那么做簽名和HTTPS認證都是在服務端進行的,現在挪到web端流程改為由后端進行簽名和HTTPS,前端請求后端接口返回必要字段進行mqtt連接(這里的必要字段包括mqtt連接需要的clientId,username,password。username對應的返回值為iotId,password對應的返回值為iotToken),拿到后端HTTPS認證之后的返回值前端進行mqtt連接:(示例) 

      var host = `ws://${productKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com:443`; //這里需要注意,在服務端是基于TCP的連接(var host = `mqtt://${productKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883`;),而在web端需要是基于websocket的連接,這個地方的坑踩了兩天o(╥﹏╥)o
      var options = {
          clientId: clientId, //請求后端返回的clientId
          username: iotId, //后端HTTPS認證返回的iotId
          password: iotToken //后端HTTPS認證返回的iotToken
      }
      var client = this.mqtt.connect(host, options); //mqtt連接
      client.on('connect', function(){
          //設備連接成功
          client.subscribe(topic); //進行主題的訂閱
      })
      client.on('error', function(){
          //連接出錯
      })
      client.on('close', function(){
          //連接斷開
          //client.end(); //結束連接
          //client = null; //將client對象置空
      })
      client.on('message', function(topic, message){
          //topic: 主題 message: 內容
          //收到消息這里的message是buffer,使用toString()轉換為字符串
      })
      以上是mqtt在web的連接關鍵代碼示例,下面說一下M2M(iot設備之間通訊):
      1.在阿里云物聯網套件控制臺設置轉發規則,在產品->消息通信配置一個模板 /產品key/${deviceName}/m2m 權限為發布和訂閱
      2.規則引擎創建規則:select deviceName() fromDevice, toDevice, data, messageId() mesaageId from ‘/產品key/+/m2m’ 并增加一個 repub動作:轉發到 /產品key/${toDevice}/m2m , 啟動規則;
      3.設備deviceA發送消息到 /產品key/deviceA/m2m ,格式如下:(這里發消息到自身deviceName的topic)
      {
          toDevice: 'deviceB', //這里值為需要發送的設備deviceName
          data: data //這里data為客戶端之間約定的數據,可以為任意對象,只有大家約定好就行
      }

      4.設備deviceB訂閱/產品key/deviceB/m2m,(這里訂閱的主題為deviceB自身),將收到如下格式數據: 

      {
              fromDevice: 'deviceA',
              toDevice: 'deviceB',
              messageId: '',
              data: data //deviceA發來的data
      }
      注意,規則轉發后的消息內容取決于規則引擎Select的內容 *詳見阿里云文檔
      那么我們在前端的具體操作為:
      //在連接時訂閱自身topic
      client.subscribe(`/${productKey}/deviceA/m2m`);
      
      在連接或者收到消息時,當前設備為deviceA:
      var msgObj = {
          toDevice: 'deviceB',
          data: data //約定的data
      }
      client.publish(`/${productKey}/deviceA/m2m`);

      以上為物聯網套件M2M的關鍵代碼。

      posted on 2018-01-18 17:33  薛將軍  閱讀(3924)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 国产精品一区二区性色av| 麻豆国产AV剧情偷闻女邻居内裤 | 人妻少妇无码精品专区| 99久久机热/这里只有精品| 久久久精品94久久精品| 国产一区二区爽爽爽视频| 精品无码人妻一区二区三区| 高清无码18| 377P欧洲日本亚洲大胆| 久久久久国色av免费看| 色欲久久综合亚洲精品蜜桃| 亚洲日韩久热中文字幕| 亚洲顶级裸体av片| 亚洲爆乳少妇无码激情| 国内不卡不区二区三区| 国产成人片无码视频| 亚洲欧美日韩综合一区在线| 年轻女教师hd中字3| 性色av不卡一区二区三区| 69精品丰满人妻无码视频a片| 四虎库影成人在线播放| 午夜成年男人免费网站| 亚洲国产精品无码久久久| 亚洲欧洲无码av电影在线观看| 国产中文字幕精品在线| 横山县| 一区二区亚洲精品国产精| 国产肥妇一区二区熟女精品| 精品视频一区二区三区不卡| 国产午夜亚洲精品久久| 成人精品自拍视频免费看| 成人啪精品视频网站午夜| 高级会所人妻互换94部分| 中文日产幕无线码一区中文| 亚洲 日韩 在线精品| 国产AV福利第一精品| 亚洲av午夜福利大精品| 免费无码AV一区二区波多野结衣| 亚洲中文字幕一区二区| 成人乱码一区二区三区av| 国产午夜福利视频在线|