【发布时间】:2019-08-29 10:35:37
【问题描述】:
这是我的 Echo 配置:
window.Echo = new Echo({
authEndpoint: process.env.VUE_APP_API_ENDPOINT.replace('/v1', '/broadcasting/auth'),
broadcaster: 'pusher',
key: 'someKey',
wsHost: window.location.hostname,
wsPort: 6001,
disableStats: true
});
window.Echo.connector.pusher.config.auth.headers['Authorization'] = 'Bearer ' + token;
在我的 vue 组件的 mount() 钩子中,我有:
window.Echo.join(`test.1`)
.here((users) => {
console.log(users);
})
.joining((user) => {
console.log(user.name);
})
.leaving((user) => {
console.log('Leaving');
});
在destroy()钩子中:
window.Echo.leave('test.1')
但只有here() 方法被触发,joining() 和leaving() 方法没有被触发。我做错了什么?
【问题讨论】:
-
您确定
test.1是一个出席频道并且其他人实际上正在加入/离开吗? -
可以分享一下 laravel 后端代码吗?
-
@gbalduzzi 我从 channels.php 返回数组而不是 true/false。所以我相信 laravel 将其视为一个存在渠道。是的,我以用户身份登录并访问(安装)组件并在登录时离开(销毁)组件。
-
@atouiahmed 您希望查看后端代码的哪一部分? :)
-
明确一点,
joining和leaving仅在其他人加入或离开频道时触发,而不是在实际用户加入或离开时触发。跨度>
标签: php laravel laravel-echo laravel-broadcast