我面临一个非常奇怪的问题,我无法理解。
我正在为我的应用程序使用vue和laravel,它们都在不同的端口上独立运行。而且我正在使用laravel作为api。
const tokenData = JSON.parse(window.localStorage.getItem('authUser'))
if (tokenData !== null) {
console.log(tokenData.token)
window.Echo = new Echo({
broadcaster: 'socket.io',
host: 'http://localhost:6001',
auth: {
headers: {
'Authorization': 'Bearer ' + tokenData.token
}
}
})
store.watch(
// When the returned result changes...
function (state) {
return state.userStore.authUser.user_id
},
// Run this callback
(userId) => {
window.Echo.private(`cchannel.${userId}`)
.listen('ChatMessage', (e) => {
console.log(e)
})
}
)
}
我正在使用api服务,因此我必须使用auth标头来在专用渠道上进行身份验证。
然后使用vuex获取user_id,然后最终如代码所示为单个用户创建动态渠道。
我在终端中得到的是
[22:38:55] - kAUI5s8ytJ6t39dSAAAB authenticated for: private-cchannel.1
[22:38:55] - kAUI5s8ytJ6t39dSAAAB joined channel: private-cchannel.1
[22:39:03] - kAUI5s8ytJ6t39dSAAAB left channel: private-cchannel.1 (transport close)
⚠ [22:39:04] - WsvwWe7spHCuKXyjAAAC could not be authenticated to private-cchannel.3
具有1的用户ID可以在private-cchannel.1
上进行身份验证,但是具有3的用户ID不能相同。
那是怎么回事?
我试图给静态通道名称提供类似cchannel.1的连接,但是当我更改为cchannel.2时却没有。