dead work:1.小程序wss需要准备ssl的证书(ps.可在阿里云免费申请)。
2.本地测试可通过花生壳内网映射也可以直接修改本机的hosts。
cause:websocket和阿里提供的mqtt一样都是通过长连接发送数据,可在后台直接转发,无须一个个提取。
main body:Spring 4.0为WebSocket通信提供了支持,WebSocket只是两个应用之间通信的通道。使用了WebSocket和STOMP实现消息功能,在WebSocket一端的应用发送消息,另外一端处理消息。因为它是全双工的,所以每一端都可以发送和处理消息,这就方便了小程序的数据接收。后台用了SpringBoot。
code:
initSocket: function() {
var that = this;
// socket是否连接
var socketConnected = false;
// 待发送的消息队列
var messageQueue = [];
// 是否断线重连
var reconnect = true;
function sendSocketMessage(msg) {
// console.log(msg);
// 如果socket已连接则发送消息
if (socketConnected) {
wx.sendSocketMessage({
data: msg
})
} else {
// socket没有连接将消息放入队列中
messageQueue.push(msg);
}
}
// 关闭连接
function close() {
if (socketConnected) {
wx.closeSocket()
}
}
var ws = {
send: sendSocketMessage,