小程序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