我正在构建一个实时聊天应用程序,但是我发现listenforwhisper函数无法正常工作,但是.whisper()函数可以正常工作,pusher还收到了客户端键入事件。
这是我的代码:
对于耳语:
Echo.private(`messages.${this.user.id}`)
.listen("NewMessage", (e) => {
this.handleIncoming(e.message);
})
.listenForWhisper("typing", (e) => {
if(e.name !='') {
this.typeStatus = 'typing .........'
}
else {
this.typeStatus = ''
}
console.log(this.typeStatus);
});
耳语:
watch: {
message() {
Echo.private(`messages.${this.user.id}`)
.whisper("typing", {
name: this.message
});
}
}
对于渠道:
Broadcast::channel('messages.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
理论上,我的控制台将返回typeStatus,但控制台中什么也没有。
答案 0 :(得分:0)
耳语的工作方式类似于broadcastToOthers。您现在正在尝试听取当前用户的耳语。您应该有一个房间,耳语会流到那里,并且应该有多个客户可以接收。现在,您的频道已与用户绑定在一起,没有其他人可以看到通过该频道的消息。