1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      node實(shí)現(xiàn)socket鏈接與GPRS進(jìn)行通信-創(chuàng)新互聯(lián)

      這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)node實(shí)現(xiàn)socket鏈接與GPRS進(jìn)行通信,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

      在光澤等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,光澤網(wǎng)站建設(shè)費(fèi)用合理。

      1、前端部分

      node實(shí)現(xiàn)socket鏈接與GPRS進(jìn)行通信

      前端部分實(shí)現(xiàn)主要是提供4個(gè)按鈕,向后臺(tái)接口請求對應(yīng)的數(shù)據(jù),例如:點(diǎn)擊A點(diǎn)擊前進(jìn),就向后臺(tái)請求http://XXXX:4000/djxt/move接口并傳輸數(shù)據(jù),可以下載完整項(xiàng)目運(yùn)行后,通過127.0.0.1:3002/djxt進(jìn)行訪問,頁面html代碼主要部分如下:

       
         A 前進(jìn)
      
         A 后退
      
         B 前進(jìn)
         
         B 后退
        

      發(fā)送數(shù)據(jù)給后臺(tái)部分代碼如下:

       // A 前進(jìn)
           goA (id){
            axios.post('/djxt/move', { id })
            .then( (response)=> {
             console.log(response);
             if( response.data.success ){
              this.alertDialog.content = '操作成功';
              this.alertDialog.status = true;
             }else{
              this.alertDialog.content = '操作失敗了';
              this.alertDialog.status = true;
             }
            })
            .catch( (error)=> {
             console.log(error);
              this.alertDialog.content = '操作失敗了';
              this.alertDialog.status = true;
            });
           }

      2、后臺(tái)實(shí)現(xiàn)

      由于用的是node技術(shù)棧,當(dāng)初使用的是scoket.io來進(jìn)行scoket鏈接的,但是在后面的開發(fā)中發(fā)現(xiàn)該方法需要有一個(gè)事件去觸發(fā)提交數(shù)據(jù),在客戶端也需要有事件進(jìn)行監(jiān)聽,不適合在與GPRS進(jìn)行通信,最后無奈的放棄了。后面采用了node的NET模塊進(jìn)行通信,該模塊只要調(diào)用write(data)就可以發(fā)送綁定端口的數(shù)據(jù)。相對比較簡單??梢詤⒖家幌耼odejs.org/dist/latest… 看不懂英文可以找中文版的。

      net的連接可以寫在www文件或是app.js文件,看自己需求。在該項(xiàng)目中暴露出來接口127.0.0.1:3004,代碼如下:

      //socket
      var net = require('net');
      // 服務(wù)器IP
      var HOST = '127.0.0.1';
      // 端口號(hào)
      var PORT = 3004;
      
      // 創(chuàng)建一個(gè)TCP服務(wù)器實(shí)例,調(diào)用listen函數(shù)開始監(jiān)聽指定端口
      // 傳入net.createServer()的回調(diào)函數(shù)將作為”connection“事件的處理函數(shù)
      // 在每一個(gè)“connection”事件中,該回調(diào)函數(shù)接收到的socket對象是唯一的
      
      net.createServer(function(sock) {
      // 全局sock,可以在其他地方調(diào)用
      global.sock = sock
      // 獲得了一個(gè)socket連接,將客戶端輸出來
      console.log('CONNECTED: ' +
        sock.remoteAddress + ':' + sock.remotePort);
      
      // 為這個(gè)socket實(shí)例添加一個(gè)"data"事件處理函數(shù),接收客戶端數(shù)據(jù)
      sock.on('data', function(data) {
        console.log('DATA ' + sock.remoteAddress + ': ' + data);
        // 回發(fā)該數(shù)據(jù),客戶端將收到來自服務(wù)端的數(shù)據(jù),實(shí)現(xiàn)ECHO服務(wù)器
        // sock.write('' + data );
      });
      
      // 為這個(gè)socket實(shí)例添加一個(gè)"close"事件處理函數(shù)
      sock.on('close', function(data) {
        console.log('CLOSED: ' +
          sock.remoteAddress + ' ' + sock.remotePort);
      });
      
      }).listen(PORT, HOST);

      代碼中的HOST 是你需要暴露給GPRS模塊的ip,PORT是端口。net.createServer創(chuàng)建服務(wù)后,它回調(diào)里面的sock可以用來做一些監(jiān)聽,例如客戶端返回?cái)?shù)據(jù)sock.on('data', function(data) {})。在開發(fā)過程中遇到一個(gè)問題就是HOST在本地是用127.0.0.1是可以進(jìn)行訪問的,但是到了云服務(wù)后,會(huì)出現(xiàn)端口訪問不了。解決辦法是把HOST改為你自己服務(wù)器的內(nèi)網(wǎng)ip即可進(jìn)行訪問。global.sock = sock這個(gè)主要是暴露全局的sock,可以在其他需要地方進(jìn)行調(diào)用,切記要暴露出去。

      服務(wù)端處理前端發(fā)送過來的數(shù)據(jù),發(fā)送到GPRS模塊。該項(xiàng)目中前端訪問的路由為/move,進(jìn)入這個(gè)路由后進(jìn)行判斷,再把值轉(zhuǎn)發(fā)給GPRS,這里關(guān)鍵點(diǎn)是利用全局的Sock的sock.write()來發(fā)送到客戶端。代碼如下

      //前端接口
      router.post('/move', async (ctx, next) => {
       let params = ctx.request.body;
       
       // console.log('ctx.state: ', global.sock)
       // console.log('ctx.state2222: ', sock)
       console.log('前端接口: ', params)
       if( !sock ){
        ctx.body = {
         data: params,
         success: false,
         msg: 'socket不存在'
        }
       }else{
        sock.write( params.id );
      
        ctx.body = {
         data: params,
         success: true,
         msg: ''
        }
       }
      })

      上述就是小編為大家分享的node實(shí)現(xiàn)socket鏈接與GPRS進(jìn)行通信了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


      當(dāng)前題目:node實(shí)現(xiàn)socket鏈接與GPRS進(jìn)行通信-創(chuàng)新互聯(lián)
      當(dāng)前路徑:http://ef60e0e.cn/article/dhddeo.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        磐石市| 大同市| 本溪市| 四川省| 汨罗市| 襄垣县| 高阳县| 江都市| 锡林郭勒盟| 中卫市| 乌兰察布市| 瑞金市| 正安县| 三台县| 长泰县| 灯塔市| 乌鲁木齐县| 依安县| 伊吾县| 芮城县| 五峰| 天祝| 内乡县| 年辖:市辖区| 达日县| 招远市| 千阳县| 青川县| 宜君县| 西畴县| 古交市| 榆中县| 和顺县| 姚安县| 扎赉特旗| 遵化市| 长乐市| 阿拉尔市| 望奎县| 湟源县| 武宣县|