小程序websocket
① 如何在微信小程序的websocket上使用mqtt協議
第一步:
參考此庫官方說明:https://github.com/mqttjs/MQTT.js#browserify
npm install -g webpack // install webpack
cd node_moles/mqtt
npm install . // install dev dependencies
webpack mqtt.js ./my_mqtt.js --output-library-target commonjs2
第二步:
將生成的my_mqtt.js文件里所有的:
(function() { return this; }())
替換為:
window
第三步:
在my_mqtt.js文件頂部加上代碼:
var setImmediate = setTimeout;
var clearImmediate = clearTimeout;
var socketOpen = false
var socketMsgQueue = []
function sendSocketMessage(msg) {
console.log('send msg:', typeof msg)
console.log(msg);
if (socketOpen) {
wx.sendSocketMessage({
data: msg
})
} else {
socketMsgQueue.push(msg)
}
}
var document = {
URL: ''
}
var window = {
setTimeout: setTimeout,
clearTimeout: clearTimeout,
WebSocket: function (url) {
console.log('call window WebSocket', arguments)
var ws = {
send: sendSocketMessage,
close: wx.closeSocket,
onopen: null,
onmessage: null,
onclose: null,
onerror: null
}
wx.connectSocket({ url: url })
wx.onSocketOpen(function (res) {
console.log('收到onopen事件:', arguments)
socketOpen = true
for (var i = 0; i < socketMsgQueue.length; i++) {
sendSocketMessage(socketMsgQueue[i])
}
socketMsgQueue = []
ws.onopen && ws.onopen.apply(ws, arguments)
})
wx.onSocketMessage(function (res) {
console.log('收到onmessage事件:', arguments)
console.log(res.data)
ws.onmessage && ws.onmessage.apply(ws, arguments)
})
wx.onSocketClose(function () {
console.log('收到onclose事件:', arguments)
ws.onclose && ws.onclose.apply(ws, arguments)
})
wx.onSocketError(function () {
console.log('收到onerror事件:', arguments)
ws.onerror && ws.onerror.apply(ws, arguments)
})
return ws;
}
}
② 微信小程序配置websocket環境及如何在小程
首先簡單介紹一下什麼是websocket
一、WebSocket是HTML5出的東西(協議),也就是說HTTP協議沒有變化,或者說沒關系,但HTTP是不支持持久連接的(長連接,循環連接的不算)
首先HTTP有1.1和1.0之說,也就是所謂的keep-alive,把多個HTTP請求合並為一個,但是Websocket其實是一個新協議,跟HTTP協議基本沒有關系,只是為了兼容現有瀏覽器的握手規范而已,也就是說它是HTTP協議上的一種補充可以通過這樣一張圖理解
這個就是效果
既然可以使用了,說明環境沒問題了,接下來看在小程序如何使用了
我為了方便就用button按鈕發起請求了
wxml代碼
<button bindtap="websocket" >websocket鏈接</button>1
js代碼
Page({
data:{
path:''
},
onLoad:function(opt){
},
websocket:function(){
var msg="你猜"
var socketOpen=true
wx.connectSocket({
url: 'ws://127.0.0.1:8080/'
})
wx.onSocketOpen(function(res){
wx.sendSocketMessage({
data:msg
})
})
wx.onSocketMessage(function(res) {
console.log(res.data)
})
}
})
注意在微信上用的時候可以先測試一下,然後在服務端加一個返回數據的函數(那個函數就在我發的代碼中,但是不在服務端,你們好好看看就會發現的),剩下就沒什麼可說的,這是最簡單的了,如果要深入的說,那是說不完的,好了,不懂可以在下方評論!
③ 如何讓微信小程序鏈接websocket
微信小程序官方提供了基礎的websocket API介面,可以和自己的websocket伺服器進行通信。雖然有了介面,但websocket伺服器需要自己搭建,這並不是一件容易的事情。
可以試試我們的GoEasy,一款第三方的websocket框架服務,很好的支持微信小程序。
使用GoEasy,你無需搭建websocket伺服器,通過GoEasy提供的介面,你可以很方便、快捷的將信息發送到任何你的客戶端。
具體的使用方法在下面:
登錄自己的微信公眾平台
進入微信公眾平台|小程序 -> 設置 -> 開發設置 -> 伺服器域名 選項的 socket合法域名項
添加 goeasy的地址: wx-hangzhou.goeasy.io獲取 GoEasy SDK
下載https://cdn.goeasy.io/download/goeasy-1.0.11.js
import GoEasy from './goeasy-1.0.11';
初始化 GoEasy 對象
// 在onLaunch方法里初始化全局GoEasy對象this.globalData.goEasy = new GoEasy({
host: "hangzhou.goeasy.io", //應用所在的區域地址: 【hangzhou.goeasy.io | singapore.goeasy.io】
appkey: "my_appkey", //替換為您的應用appkey
onConnected: function() {
console.log('連接成功!')
},
onDisconnected: function() {
console.log('連接斷開!')
},
onConnectFailed: function(error) {
console.log('連接失敗或錯誤!')
}});小程序端接收消息
getApp().globalData.goEasy.subscribe({
channel: "my_channel", //替換為您自己的channel
onMessage: function (message) {
console.log("Channel:" + message.channel + " content:" + message.content);
}});小程序端發送消息:
getApp().globalData.goEasy.publish({
channel: "my_channel", //替換為您自己的channel
message: "Hello, GoEasy!" //替換為您想要發送的消息內容});
以上便是在微信小程序中使用websocket的步驟,這里提供一份教程和demo,希望對你有所幫助:網頁鏈接
④ 小程序 支持websocket嗎
微信的內置瀏覽器支持websocket。
1、Android版微信沒問題,因為使用的是瀏覽器內核,不受本身系統瀏覽器影響。
2、iOS版微信沒問題,使用的是Safari瀏覽器。
3、WindowsPhone版微信沒問題,使用的是WP8。
WebSocket瀏覽器端兼容性對比圖:
註:雖然Android4.3及以下系統瀏覽器都不支持WebSocket,但在微信內置瀏覽器內核,解決了這一問題。
⑤ 微信小程序websocket在開發者工具可以實時聊天 但是在真機不可以,求解答
需要微信平台管理員掃一掃,如果管理員不在職可以換管理員,或者在後台添加多個管理員,然後授權就多了,就不一定非要第一管理員給許可權!
⑥ 小程序支持websocket么
的內置瀏覽器支持websocket。1、Android版 沒問題,因為使用的是瀏覽器內核,不受本身系統瀏覽器影響。2、iOS版 沒問題,使用的是Safari瀏覽器。3、WindowsPhone版 沒問題,使用的是WP8。WebSocket瀏覽器端兼容性對比圖:註:
⑦ 微信小程序 websocket sockettask
微信小程序,簡稱CX,是一種不需要下載安裝即可使用的應用。微信小程序可以幫助開發者快速的開發小程序,微信小程序可以在微信內被便捷地獲取和傳播;是一種不需要下載安裝即可使用的應用小程序,和原有的三種公眾號是並行的體系。2017年6月14日小程序新推星標功能。小程序、訂閱號、服務號、企業號是並行的體系。
⑧ 微信小程序websocket和php通信
普通弄過nginx或者apache運行php的cgi、mod_php模式是不適合作為socket服務端的,你需要使用cli模式運行(就是直接專在shell裡面執行php server.php)屬
可以使用Workerman框架或者swoole擴展來開發,推薦使用Workerman更簡單,socket操作都封裝好了,至於這兩個東西網上資料比較多,你可以查一下
⑨ 如何在微信小程序的websocket上使用stomp協議
var socketOpen = false
var socketMsgQueue = []
function sendSocketMessage(msg) {
console.log('send msg:')
console.log(msg);
if (socketOpen) {
wx.sendSocketMessage({
data: msg