如何解决Laravel echo 只收听公共频道
我正在使用 Laravel WebSockets,它监听所有频道,但 Laravel Echo 不监听私人频道,它只监听公共频道
频道.PHP
use Illuminate\Support\Facades\broadcast;
broadcast::channel('user.{id}',function ($user,$id) {
return true;
});
事件类别
class TicketAssigned implements ShouldbroadcastNow
{
use dispatchable,InteractsWithSockets,SerializesModels;
public $message;
public $user;
public function __construct(User $user,$message)
{
$this->message = $message;
$this->user = $user;
}
public function broadcastOn()
{
return new PrivateChannel('private-user.'.$this->user->id);
}
public function broadcastAs()
{
return 'user.created';
}
}
这是我的 app.js 文件,其中包含我的 Laravel Echo 配置
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',database: "redis",key: process.env.MIX_PUSHER_APP_KEY,cluster: process.env.MIX_PUSHER_APP_CLUSTER,wsHost: window.location.hostname,wsPort: 6001,wssport: 6001,disableStats: true,enabledTransports: ['ws','wss'],authEndpoint: "/broadcasting/auth",});
window.Echo.private('user.'+window.Laravel.user) //public channel work
.listen('.user.created',(message) => {
console.log(message);
});
websockets.PHP
'apps' => [
[
'id' => env('PUSHER_APP_ID'),'name' => env('APP_NAME'),'key' => env('PUSHER_APP_KEY'),'secret' => env('PUSHER_APP_SECRET'),'enable_client_messages' => true,'enable_statistics' => false,],
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。