问题描述
我正在使用 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 (将#修改为@)