Browse Source

[拆离ext.json][修改]:[拆离ext.json]

newMall
meo 5 years ago
parent
commit
534182ab40
2 changed files with 119 additions and 121 deletions
  1. +115
    -116
      app.js
  2. +4
    -5
      config/config.js

+ 115
- 116
app.js View File

@@ -1,6 +1,5 @@
let config = require("./config/config.js"); let config = require("./config/config.js");
const Http = require("./utils/HttpBasics"); const Http = require("./utils/HttpBasics");
const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {}
App({ App({
data: {}, data: {},
onLaunch: function(options) { onLaunch: function(options) {
@@ -177,137 +176,137 @@ App({
}, },


// 初始化websocket // 初始化websocket
initSocket: function() {
let that = this;
// socket是否连接
let socketConnected = false;
// 待发送的消息队列
let messageQueue = [];
// 是否断线重连
let reconnect = true;
// initSocket: function() {
// let that = this;
// // socket是否连接
// let socketConnected = false;
// // 待发送的消息队列
// let messageQueue = [];
// // 是否断线重连
// let reconnect = true;


// 发送消息
function sendSocketMessage(msg) {
// console.log(msg);
// 如果socket已连接则发送消息
if (socketConnected) {
wx.sendSocketMessage({
data: msg
})
} else {
// socket没有连接将消息放入队列中
messageQueue.push(msg);
}
}
// // 发送消息
// function sendSocketMessage(msg) {
// // console.log(msg);
// // 如果socket已连接则发送消息
// if (socketConnected) {
// wx.sendSocketMessage({
// data: msg
// })
// } else {
// // socket没有连接将消息放入队列中
// messageQueue.push(msg);
// }
// }


// 关闭连接
function close() {
if (socketConnected) {
wx.closeSocket()
socketConnected = false;
}
}
// // 关闭连接
// function close() {
// if (socketConnected) {
// wx.closeSocket()
// socketConnected = false;
// }
// }


// 符合WebSocket定义的对象
var ws = {
send: sendSocketMessage,
close: close
}
// // 符合WebSocket定义的对象
// var ws = {
// send: sendSocketMessage,
// close: close
// }


// 创建一个 WebSocket 连接
function connect() {
wx.connectSocket({
url: config.wsurl,
header: {
token: that.globalData.token //从服务端获取一个token,服务端验证token是否允许连接,案例中没做限制
}
})
}
connect();
// // 创建一个 WebSocket 连接
// function connect() {
// wx.connectSocket({
// url: config.wsurl,
// header: {
// token: that.globalData.token //从服务端获取一个token,服务端验证token是否允许连接,案例中没做限制
// }
// })
// }
// connect();


// 监听 WebSocket 连接打开事件
wx.onSocketOpen(function(res) {
console.log("WebSocket 连接成功")
socketConnected = true;
ws.onopen();
// 连接成功后,将队列中的消息发送出去
let queueLength = messageQueue.length
for (let i = 0; i < queueLength; i++) {
sendSocketMessage(messageQueue.shift())
}
})
// // 监听 WebSocket 连接打开事件
// wx.onSocketOpen(function(res) {
// console.log("WebSocket 连接成功")
// socketConnected = true;
// ws.onopen();
// // 连接成功后,将队列中的消息发送出去
// let queueLength = messageQueue.length
// for (let i = 0; i < queueLength; i++) {
// sendSocketMessage(messageQueue.shift())
// }
// })


// 监听 WebSocket 接受到服务器的消息事件
wx.onSocketMessage(function(res) {
ws.onmessage(res);
})
// // 监听 WebSocket 接受到服务器的消息事件
// wx.onSocketMessage(function(res) {
// ws.onmessage(res);
// })


// 监听 WebSocket 错误事件
wx.onSocketError(function(res) {
console.log("WebSocket 错误事件")
if (!socketConnected) {
// 断线重连
if (reconnect) {
connect();
}
}
})
// // 监听 WebSocket 错误事件
// wx.onSocketError(function(res) {
// console.log("WebSocket 错误事件")
// if (!socketConnected) {
// // 断线重连
// if (reconnect) {
// connect();
// }
// }
// })


// 监听 WebSocket 连接关闭事件
wx.onSocketClose(function(res) {
console.log("WebSocket 连接关闭")
socketConnected = false;
// 断线重连
if (reconnect) {
connect();
}
})
// // 监听 WebSocket 连接关闭事件
// wx.onSocketClose(function(res) {
// console.log("WebSocket 连接关闭")
// socketConnected = false;
// // 断线重连
// if (reconnect) {
// connect();
// }
// })


const Stomp = require('/utils/stomp.min.js').Stomp;
// const Stomp = require('/utils/stomp.min.js').Stomp;


/**
* 定期发送心跳或检测服务器心跳
* The heart-beating is using window.setInterval() to regularly send heart-beats and/or check server heart-beats.
* 可看stomp.js的源码(195,207,489行),由于小程序没有window对象,所以我们要调用小程序的定时器api实现
*/
Stomp.setInterval = function(interval, f) {
return setInterval(f, interval);
};
// 结束定时器的循环调用
Stomp.clearInterval = function(id) {
return clearInterval(id);
};
// /**
// * 定期发送心跳或检测服务器心跳
// * The heart-beating is using window.setInterval() to regularly send heart-beats and/or check server heart-beats.
// * 可看stomp.js的源码(195,207,489行),由于小程序没有window对象,所以我们要调用小程序的定时器api实现
// */
// Stomp.setInterval = function(interval, f) {
// return setInterval(f, interval);
// };
// // 结束定时器的循环调用
// Stomp.clearInterval = function(id) {
// return clearInterval(id);
// };


const stompClient = Stomp.over(ws);
// const stompClient = Stomp.over(ws);


that.globalData.socketClient = stompClient;
// that.globalData.socketClient = stompClient;


stompClient.connect({}, function(callback) {
// stompClient.connect({}, function(callback) {


// 订阅自己的
stompClient.subscribe('/user/' + config.weapp.AppId + '/' + that.globalData.openId + '/message', function(message, headers) {
console.log('收到只发送给我的消息:', message);
that.globalData.socketReceiver(JSON.parse(message.body));
// 通知服务端收到消息
message.ack();
});
// // 订阅自己的
// stompClient.subscribe('/user/' + config.weapp.AppId + '/' + that.globalData.openId + '/message', function(message, headers) {
// console.log('收到只发送给我的消息:', message);
// that.globalData.socketReceiver(JSON.parse(message.body));
// // 通知服务端收到消息
// message.ack();
// });


stompClient.subscribe('/topic/' + config.weapp.AppId, function(message, headers) {
console.log('收到TOPIC的消息:', message);
that.globalData.socketReceiver(JSON.parse(message.body));
// 通知服务端收到消息
//message.ack();
});
// stompClient.subscribe('/topic/' + config.weapp.AppId, function(message, headers) {
// console.log('收到TOPIC的消息:', message);
// that.globalData.socketReceiver(JSON.parse(message.body));
// // 通知服务端收到消息
// //message.ack();
// });


// 向服务端发送消息
stompClient.send("/app/message", {}, JSON.stringify({
'msg': 'client: ' + that.globalData.openId
}));
})
},
// // 向服务端发送消息
// stompClient.send("/app/message", {}, JSON.stringify({
// 'msg': 'client: ' + that.globalData.openId
// }));
// })
// },


//统一发送消息 //统一发送消息
sendSocketMessage: function(msg) {
this.globalData.socketClient.send("/app/message", {}, JSON.stringify(msg));
}
// sendSocketMessage: function(msg) {
// this.globalData.socketClient.send("/app/message", {}, JSON.stringify(msg));
// }
}); });

+ 4
- 5
config/config.js View File

@@ -1,10 +1,9 @@
const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {}
let weappId = extConfig.weappId;
let configUrls = extConfig.attr.configUrl;
let sockUrls = extConfig.attr.socketUrl;
let weappId = 'wx649b3be73c1afe47';
let configUrls = 'https://ctest.malls.iformall.com/C/api';
// let sockUrls = '';
var config = { var config = {
url: configUrls, url: configUrls,
wsurl: sockUrls,
// wsurl: sockUrls,
api: { api: {
/** /**
* 接口用途:login * 接口用途:login


Loading…
Cancel
Save