欢乐千炮捕鱼破解版|百乐千炮捕鱼游戏下载

首頁 > 上網技巧 > 電腦小技巧 > 微信小程序基于node實現websocket通信

微信小程序基于node實現websocket通信

時間:2019-07-26 15:51 作者:QQ地帶 我要評論

小程序中需要用到webSocket通信,為了方便自己調試,于是弄了個node環境來做測試。
 
 
一、客戶端
webSocket客戶端的使用還是蠻簡單的,
 
var ws = new WebSocket('ws://127.0.0.1:3000');
ws.onopen = function() {
    console.log('open');
}
ws.onmessage = function(data) {
    console.log(data);
}
實例化WebSocket后,為實例綁定事件就可以了,當然還有其他的事件,我這就不列舉了,只用open和message了。
 
下面看下node的代碼。
 
二、socket.io
socket.io聽過得比較早,但一直沒有機會使用,于是第一個便想到他,npm install下。
 
增加后端代碼,在不妨礙理解的基礎上進行了代碼刪減:
 
const io = require('socket.io')();
io.on('connection', function(client) {
    console.log('connected');
});
io.listen(3000);
powershell下用node啟動該服務,同樣的,用http-server工具啟動,打開 http://127.0.0.1:8080/ws.html。
 
發現控制臺下報錯了,提示Connection closed before receiving a handshake response。
 
《基于node實現websocket通信》
好吧,這兒被卡了好久,后來發現原因是websocket版本的問題,我們看下控制臺的network,
 
《基于node實現websocket通信》
發現websocket對應的是13版本,而socket.io支持的版本是4版本,故存在問題。而websocket版本詳細可以查看:websocket版本。
 
有問題,怎么處理呢?繼續看下一個ws庫。
 
三、ws
ws是一個node的webSocket庫,在readme中說明了他是支持13版本的websocket協議的。
 
直接上代碼,啟服務,
 
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 3000 });
wss.on('connection', function(ws) {
    console.log('connected');
    ws.on('message', function(message) {
        console.log('received: %s', message);
    });
    ws.send('something');
});
刷新下ws.html,控制臺上有打印了,這下可以使用了。
 
四、總結
講完了,發現微信下沒講?不,微信下是一樣的,微信的websocket也是13版本的,問題和處理方法都是一樣的,沒用微信的例子是因為想看下普通pc下的效果,發現一致的,就直接拿來當例子了。

標簽: 微信小程序 WebSocket
頂一下
(0)
0%
踩一下
(0)
0%

Google提供的廣告

欢乐千炮捕鱼破解版 一码中特可信吗 5码阶梯式超级倍投法 pk走势吕新x全方揭秘 今晚开什么生肖 欢乐生肖平台哪个好 18选7中奖规则 湖北快三遗漏数据统计下载 热彩彩票平台 天际彩友心水论坛 吉林时时几点