成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

node實現(xiàn)socket鏈接與GPRS進行通信-創(chuàng)新互聯(lián)

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

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

1、前端部分

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

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

 <div class="wrap">
   <button @click="goA('A1')" class="weui-btn" v-bind:class="{ 'weui-btn_loading': btnStatus.cur == 'A1'&&btnStatus.status==0, 'weui-btn_primary': btnStatus.cur == 'A1'&&btnStatus.status==1, 'weui-btn_plain-primary': btnStatus.cur != 'A1' }">A 前進<i v-show="btnStatus.cur == 'A1'&&btnStatus.status==0" class="weui-loading"></i></button>

   <button @click="backA('A0')" class="weui-btn" v-bind:class="{ 'weui-btn_loading': btnStatus.cur == 'A0'&&btnStatus.status==0, 'weui-btn_primary': btnStatus.cur == 'A0'&&btnStatus.status==1, 'weui-btn_plain-default': btnStatus.cur != 'A0' }">A 后退<i v-show="btnStatus.cur == 'A0'&&btnStatus.status==0" class="weui-loading"></i></button>

   <button @click="goB('B1')" class="weui-btn" v-bind:class="{ 'weui-btn_loading': btnStatus.cur == 'B1'&&btnStatus.status==0, 'weui-btn_primary': btnStatus.cur == 'B1'&&btnStatus.status==1, 'weui-btn_plain-primary': btnStatus.cur != 'B1' }">B 前進<i v-show="btnStatus.cur == 'B1'&&btnStatus.status==0" class="weui-loading"></i></button>
   
   <button @click="backB('B0')" class="weui-btn" v-bind:class="{ 'weui-btn_loading': btnStatus.cur == 'B0'&&btnStatus.status==0, 'weui-btn_primary': btnStatus.cur == 'B0'&&btnStatus.status==1, 'weui-btn_plain-default': btnStatus.cur != 'B0' }">B 后退<i v-show="btnStatus.cur == 'B0'&&btnStatus.status==0" class="weui-loading"></i></button>
  </div>

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

 // A 前進
     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、后臺實現(xiàn)

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

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

//socket
var net = require('net');
// 服務器IP
var HOST = '127.0.0.1';
// 端口號
var PORT = 3004;

// 創(chuàng)建一個TCP服務器實例,調(diào)用listen函數(shù)開始監(jiān)聽指定端口
// 傳入net.createServer()的回調(diào)函數(shù)將作為”connection“事件的處理函數(shù)
// 在每一個“connection”事件中,該回調(diào)函數(shù)接收到的socket對象是唯一的

net.createServer(function(sock) {
// 全局sock,可以在其他地方調(diào)用
global.sock = sock
// 獲得了一個socket連接,將客戶端輸出來
console.log('CONNECTED: ' +
  sock.remoteAddress + ':' + sock.remotePort);

// 為這個socket實例添加一個"data"事件處理函數(shù),接收客戶端數(shù)據(jù)
sock.on('data', function(data) {
  console.log('DATA ' + sock.remoteAddress + ': ' + data);
  // 回發(fā)該數(shù)據(jù),客戶端將收到來自服務端的數(shù)據(jù),實現(xiàn)ECHO服務器
  // sock.write('' + data );
});

// 為這個socket實例添加一個"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)建服務后,它回調(diào)里面的sock可以用來做一些監(jiān)聽,例如客戶端返回數(shù)據(jù)sock.on('data', function(data) {})。在開發(fā)過程中遇到一個問題就是HOST在本地是用127.0.0.1是可以進行訪問的,但是到了云服務后,會出現(xiàn)端口訪問不了。解決辦法是把HOST改為你自己服務器的內(nèi)網(wǎng)ip即可進行訪問。global.sock = sock這個主要是暴露全局的sock,可以在其他需要地方進行調(diào)用,切記要暴露出去。

服務端處理前端發(fā)送過來的數(shù)據(jù),發(fā)送到GPRS模塊。該項目中前端訪問的路由為/move,進入這個路由后進行判斷,再把值轉(zhuǎn)發(fā)給GPRS,這里關(guā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實現(xiàn)socket鏈接與GPRS進行通信了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道。

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

當前題目:node實現(xiàn)socket鏈接與GPRS進行通信-創(chuàng)新互聯(lián)
新聞來源:http://jinyejixie.com/article40/dhddeo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設關(guān)鍵詞優(yōu)化、全網(wǎng)營銷推廣商城網(wǎng)站、靜態(tài)網(wǎng)站、品牌網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計