微信小程式和伺服器通訊-WebSocket
https://segmentfault.com/a/1190000007546303
本文主要講一下如何建立一個基於node.js的WebSocket伺服器,並在小程式中使用這個提供實時服務的伺服器。
node.js中已經有很多現成的第三方庫,用於構建WebSocket服務。我們今天選用一個叫做websocket的庫,來構建一個可以提供標準WebSocket介面的node.js服務端程式。
先建一個空資料夾,名叫ws-server,然後進入該資料夾,在命令列執行:
npm install websocket
然後在ws-server資料夾下,再新建一個名為app.js的檔案,內容如下:
因為WebSocket服務是建立在HTTP之上的,所以我們看到,程式碼中建立了一個http server, 然後建立了一個使用了該http server的WebSocket server,並讓http server監聽8080埠對外提供服務。
這個服務端的功能也很簡單,就是收到客戶端傳送的訊息並列印出來,然後在接收到的訊息前面加上一個[from server]的字首後,返回給客戶端。
好,我們來實現呼叫該服務的微信小程式程式碼:
首先我們需要用wx.connectSocket()方法去連線目標伺服器,因為我們開發環境用的是非安全的http,所以這邊的url引數是ws://打頭的,在以後微信的實際執行環境中,你的服務端必須使用SSL,所以連線url就會是wss://的了。
然後需要呼叫wx.onSocketOpen()方法來設定WebSocket連線開啟時的回撥函式。當連線開啟後,就可以開始向服務端傳送資料了,我們在這裡使用wx.sendSocketMessage()方法,向服務端傳送了一個後面跟隨一個隨機數的Hello,World字串。我們執行一下程式,可以看到,服務端的控制檯上會列印出這樣的結果:
說明服務端已經成功接收到了客戶端傳送的字串訊息。
之後服務端會向客戶端再反饋這個訊息,那客戶端這邊如何接收這個從服務端過來的訊息呢?我們可以在小程式中,使用wx.onSocketMessage()方法,監聽服務端傳送到客戶端的訊息,正如我們上面的示例程式碼寫的那樣:
wx.onSocketMessage(function (msg) {
console.log(msg)
})
我們在小程式的Console上,簡單的列印了從服務端過來的訊息,如下所示:
這樣,一個簡單但完整的客戶端和伺服器端的WebSocket互動就完成了。如果你想關閉這個WebSocket連線,那麼你可以呼叫wx.closeSocket()來進行關閉。
相關文章
- 小程式元件-仿微信通訊錄元件
- 微信小程式websocket聊天室微信小程式Web
- Laravel + 微信小程式 websocket 搭建廣播訊息系統Laravel微信小程式Web
- 微信小程式實現WebSocket心跳重連微信小程式Web
- 如何在微信小程式中實現音視訊通話微信小程式
- 縱橫開闔-微信小程式之通訊錄全攻略微信小程式
- 微信小程式幽默風和git微信小程式Git
- 微信小程式微信小程式
- 微信小程式怎麼開通,小程式頁面如何開發微信小程式
- 花店小程式:如何開通製作鮮花店的微信小程式?微信小程式
- 微信小程式——搭建自己的Https伺服器微信小程式HTTP伺服器
- 微信小程式小技巧微信小程式
- WebSocket通訊Web
- 微信小程式開發之大神之路最全微信小程式開發教程(視訊+精品文章)微信小程式
- 微信小程式音訊播放 InnerAudioContext 的用法微信小程式音訊Context
- 微信小程式(1) 微信小程式TLS版本大於1.2微信小程式TLS
- 微信小程式路由微信小程式路由
- 基於 EasyWechat 和 Laravel notification 傳送微信小程式模板訊息Laravel微信小程式
- 微信小程式通過wx.makePhoneCall打電話微信小程式
- 三步教你開通微信小程式直播功能微信小程式
- 基於WebSocket的modbus通訊(三)- websocket和串列埠Web串列埠
- Day10-微信小程式實戰-交友小程式-實現刪除好友資訊與子父元件間通訊微信小程式元件
- 在微信小程式裡使用 watch 和 computed微信小程式
- 微信小程式-模組化和模版化微信小程式
- 微信小程式和app最大區別在哪微信小程式APP
- 對比學習Vue和微信小程式Vue微信小程式
- 微信小程式初體驗,入門練手專案--通訊錄,後臺是阿里雲伺服器(一)微信小程式阿里伺服器
- ios微信小程式 BLE藍芽通訊開發介面UI卡頓問題iOS微信小程式藍芽UI
- 微信小程式 獲取使用者資訊微信小程式
- 簡訊可以直接喚起微信小程式嗎微信小程式
- 微信小程式 Video 視訊太小怎麼辦微信小程式IDE
- Thinkphp微信行銷工具,微信小程式。PHP微信小程式
- 基於WebSocket的modbus通訊(一)- 伺服器Web伺服器
- websocket通訊原理Web
- 微信小程式實現軌跡回放,微信原生小程式,基於uniapp的小程式?微信小程式APP
- 手把手教你搭建微信小程式伺服器(HTTPS)微信小程式伺服器HTTP
- Tcp, WebSocket 和 http 之間的通訊TCPWebHTTP
- 微信小程式 demo 整理微信小程式
- 微信小程式之支付微信小程式