网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網(wǎng)

使用ws打造一個(gè)簡(jiǎn)單的小程序websocket后端

發(fā)布時(shí)間:2018-04-18 10:42 所屬欄目:小程序開(kāi)發(fā)教程
分享者:石橋碼農(nóng),原文地址

以下內(nèi)容轉(zhuǎn)自nodejs快速實(shí)現(xiàn)微信小程序的websocket服務(wù)端,為便于讀者閱讀、學(xué)習(xí),有部分刪改。

正文——

微信小程序?qū)Φ谌椒?wù)端的網(wǎng)絡(luò)通信方式支持https和Websocket。WebSocket是HTML5開(kāi)始提供的一種在單個(gè) TCP 連接上進(jìn)行全雙工通訊的協(xié)議。為了解決HTTP協(xié)議效率低下的問(wèn)題,HTML5定義了WebSocket協(xié)議,能更好的節(jié)省服務(wù)器資源和帶寬并達(dá)到實(shí)時(shí)通訊。WebSocket在數(shù)據(jù)傳輸?shù)姆€(wěn)定性和數(shù)據(jù)傳輸量的大小方面,具有很大的性能優(yōu)勢(shì)。有不少公司將nodejs的http://socket.io作為websocket的解決方案,很遺憾的是http://socket.io是對(duì)websocket的封裝,并不支持html5原始的websocket協(xié)議。node有很多websocket庫(kù),ws就是其中一個(gè),號(hào)稱最輕量級(jí),最快。ws的用法比較簡(jiǎn)單。

要使用ssl,首先你得有ssl證書(shū),自己生成的不能用于外網(wǎng)部署,建議去騰訊云、或七牛云存儲(chǔ)申請(qǐng)一個(gè)免費(fèi)的。

1,新建ws后端工程文件

首選需要安裝node,參見(jiàn):https://nodejs.org/en/download/

接者安裝ws,一條指令搞定(以后所有的源碼,類庫(kù)都應(yīng)該是這個(gè)樣子的):

npm install ws --save

新建一個(gè)main.js

var fs = require('fs');
var httpServ = require('https');
var WebSocketServer = require('ws').Server;

var app = httpServ.createServer({
    key: fs.readFileSync('ssl.key'),
    cert: fs.readFileSync('ssl.crt')
})
app.listen(8000,function() {
    console.log('server started.')
});

var wss = new WebSocketServer({
    server: app
});

wss.on('connection', function(wsConnect) {
    wsConnect.on('message', function(message) {
        console.log("received ",message);
        wsConnect.send('reply');
    });
});

其中,ssl.key與ssl,crt是我的證書(shū)文件,需要換成自己的。啟動(dòng)端口是8000。在終端里執(zhí)行:

node main.js

如果看到"server started",證明啟動(dòng)成功了。

2,本機(jī)瀏覽器測(cè)試

打開(kāi)chrome調(diào)試窗口,輸入:

var socket = new WebSocket('wss://www.rixingyike.com:8000/');
socket.send('message');

如果在后臺(tái)的終端看到"received message"的輸出,證明ws后端已經(jīng)啟動(dòng)成功了。

在這里www.rixingyike.com是與我的ssl證書(shū)文件匹配的域名,大家要換成自己的。另外,為了本機(jī)測(cè)試方便。可以在/etc/hosts里,將www.rixingyike.com指向127.0.0.1。

3,在小程序中連接

在隨意一個(gè)小程序js文件中輸入以下函數(shù)并執(zhí)行:

  testWss(){
    wx.connectSocket({
      url: 'wss://www.rixingyike.com:8000/'
    })
    wx.onSocketOpen(function (res) {
      console.log('WebSocket連接已打開(kāi)!')
    })
    wx.onSocketOpen(function (res) {
      wx.sendSocketMessage({
        data: "weapp message"
      })
    })
    wx.onSocketMessage(function (res) {
      console.log('小程序收到服務(wù)器消息:' + res.data)
    })
  }
保存,運(yùn)行。正常的話,就能在后臺(tái)終端看到"received weapp message"的打印。另外,在小程序啟動(dòng)時(shí),會(huì)收到一個(gè)“replay”的打印消息。

 
 
 


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/23668.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢
AI智能客服 ×