webman-push在uniapp中出现连接无反应

JunH

问题描述

使用webman-push在PC端正常,在uniapp会出现当前页面进入连接正常,离开页面返回后不正常
这里写描述
uniapp端使用onshow进入页面每次连接
onhide离开页面关闭连接
但是在本页面点击按钮离开时调用navigateTo
返回使用navigateBack
这个时候onshow能进入 new push也有新连接 但是就是频道通知无法接受到

程序代码或配置

onShow() {
this.setSockt()
}
const setSockt = () => {
// console.log(1)
// 建立连接
data.connection = new Push({
url: 'wss://省略', // websocket地址
app_key: '此处省略',
auth: '/plugin/webman/push/auth', // 订阅鉴权(仅限于私有频道)
})
// console.log(data.connection)
// 浏览器监听user-1频道的消息,也就是用户uid为1的用户消息
data.room_channel = data.connection.subscribe('CHANNEL_ROOM-' + data.shopId)
data.room_clear = data.connection.subscribe('CHANNEL_ROOM_ALL-' + data.shopId)
// 当user-1频道有message事件的消息时
data.room_channel.on('message', res => {
// console.log(res.content);
if (res.content === 'CHANNEL_QUEUE') {
// getLineList()
} else {
const obj = JSON.parse(res.content)
handleData(obj)
}
})
data.room_clear.on('message', res => {
if (res.content === 'CHANNEL_ROOM_ALL') {
getData()
}
})
}

重现问题的步骤

是因为页面没有强制刷新导致连接没有连接成功吗

323 1 0
1个回答

nitron

我帮你格式化下代码,不然这破格式别人本来想帮你解决的都看不下去

const setSockt = () => {
// console.log(1)
// 建立连接
    data.connection = new Push({
        url: 'wss://省略', // websocket地址
        app_key: '此处省略',
        auth: '/plugin/webman/push/auth', // 订阅鉴权(仅限于私有频道)
    })
// console.log(data.connection)
// 浏览器监听user-1频道的消息,也就是用户uid为1的用户消息
    data.room_channel = data.connection.subscribe('CHANNEL_ROOM-' + data.shopId)
    data.room_clear = data.connection.subscribe('CHANNEL_ROOM_ALL-' + data.shopId)
// 当user-1频道有message事件的消息时
    data.room_channel.on('message', res => {
// console.log(res.content);
        if (res.content === 'CHANNEL_QUEUE') {
// getLineList()
        } else {
            const obj = JSON.parse(res.content)
            handleData(obj)
        }
    })
    data.room_clear.on('message', res => {
        if (res.content === 'CHANNEL_ROOM_ALL') {
            getData()
        }
    })
}
🔝