我尝试使用一个在线状态通道来查看用户的来来往往。出于这个目的,正如文档所建议的那样,我编写了以下代码。我收到了这个。
但是我怎么才能获得'加入'用户的console.log呢?如果我以另一个用户的身份登录,我只会得到一个用户凭证。我想它应该是一个数组...那么我该怎么做才能触发'加入'功能呢?
Echo.join('chat')
.here((users) => {
console.log('hello',users)
this.users = users;
})
.joining((user) => {
console.log('hey you', user)
this.users.push(user);
})
.leaving((user) => {
this.users.splice(this.users.indexOf(user), 1);
})
1条答案
按热度按时间gwo2fgha1#
据我所知,.joining()默认情况下每次触发一次。每当有新用户加入频道时,此函数都会捕获用户并向频道发送相关事件。对吗?
当你刷新页面时,频道也会重新加载,触发.leaving()和.joining()--你“离开”了页面,又“返回”了页面。
如果您是重新加载页面的用户,您将不会收到“hey you...”,因为您是触发事件的用户。将收到它的是那些连接到通道的用户。
当您重新加入通道时,在刷新之后,.here()将被触发...
请记住:如果“Echo.join()”在您刷新的页面中,您将暂时与通道断开连接,因此您将无法接收通道发送的消息。
例如:
我们(你和我)连接到同一个频道,我刷新页面。我将暂时断开与该频道的连接,该频道将向仍连接到它的用户(在本例中为您)广播.joining()中的内容。
如果你刷新页面也是如此。当我收到消息时,你将被断开连接。
所以,如果你想接收.joining()广播的消息,请确保你不是刷新页面的用户。