这是一个与Laravel 7的设置,遵循的安装指南使用推车驱动与laravel-websockets而不是推车。
'php artisan websockets:serve‘正在运行,并已连接到浏览器中的Echo客户端,并且正在愉快地发送ping / pong消息。
但是,当我试图通过触发
broadcast(new TestBroadcastingEvent($event));我没有看到websockets的任何活动:服务日志,也没有连接上的消息(在DevTools中)。
我可以看到事件被构造,作业被排队并执行,我可以看到broadcastOn()方法正在被调用。
public function broadcastOn()
{
\Log::debug("broadcastOn()");
return new PrivateChannel('order.'.$this->event->ch);
}如果我将BROADCAST_DRIVER切换到“log”,就会看到记录在那里的消息:
[2021-05-07 14:08:59] testing.INFO: Broadcasting [App\Events\TestBroadcastingEvent] on channels [order.111] with payload:
{
"event": {
"ch": "111",
"info": "hello"
},
"socket": null
} 但是,将BROADCAST_DRIVER设置为"pusher“不会导致进一步的活动,正如前面提到的。
队列驱动程序设置为“同步”的行为相同,所以不是队列设置。
我唯一的线索是,没有调用通道身份验证函数,但是从医生们的角度来看,这是否与发送相关(比如侦听身份验证)并不十分清楚。
Broadcast::channel('order.{orderId}', function ($user, $orderId) {
\Log::debug('callback in channels.php');
return true;
});在任何日志中都没有错误,没有异常,也没有任何明显错误。
我还能看到哪些信息丢失了呢?
发布于 2022-11-01 09:38:51
这不是对最初问题的直接回答,因为那是一年半前的事了,但我遇到的问题与使用pusher pusher 7.2和WebSockets1.13.1描述的问题相同。
乒乓消息被发送和接收,但我无法从Laravel 9应用程序中广播我自己的消息。
降级到pusher-php-server 7.0.2解决了这个问题。
https://stackoverflow.com/questions/67444228
复制相似问题