当小程序启动时,可建立websocket连接,在app.js编写如下代码:
const domain_ws = require('utils/domain.js').domain_ws
const domain = require('utils/domain.js').domain
App({
onLaunch() {
// 展示本地存储能力
const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
if (wx.getStorageSync('token') != ''){
wx.request({
method: 'GET',
header: {
'alexmisko-user': wx.getStorageSync('token')
},
url: domain + '/message/reddot/user',
success(res){
console.log(res)
if(res.data.msg == "yes"){
console.log("收到离线的通知!")
wx.showTabBarRedDot({
index: 3
})
}else{
console.log("没有新的通知!")
}
}
})
wx.connectSocket({
url: domain_ws + '/message/' + wx.getStorageSync('token')
})
wx.onSocketOpen((res) => {
console.log("连接已打开!")
})
wx.onSocketError((res) => {
console.log('WebSocket连接打开失败,请检查!')
})
wx.onSocketMessage((res) => {
console.log('收到服务器内容:' + JSON.parse(res.data).content)
if(JSON.parse(res.data).type == 'favor'){
wx.showTabBarRedDot({
index: 3,
})
}
this.globalData.callback(res)
})
wx.onSocketClose((res) => {
console.log('关闭连接!')
})
}
},
globalData: {
userInfo: null,
callback: function () {}
}
})