首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉拉维尔广播用Pusher和laravel-websockets不发送信息

拉拉维尔广播用Pusher和laravel-websockets不发送信息
EN

Stack Overflow用户
提问于 2021-05-08 04:56:29
回答 1查看 932关注 0票数 4

这是一个与Laravel 7的设置,遵循的安装指南使用推车驱动与laravel-websockets而不是推车。

'php artisan websockets:serve‘正在运行,并已连接到浏览器中的Echo客户端,并且正在愉快地发送ping / pong消息。

但是,当我试图通过触发

代码语言:javascript
复制
broadcast(new TestBroadcastingEvent($event));

我没有看到websockets的任何活动:服务日志,也没有连接上的消息(在DevTools中)。

我可以看到事件被构造,作业被排队并执行,我可以看到broadcastOn()方法正在被调用。

代码语言:javascript
复制
public function broadcastOn()
{
    \Log::debug("broadcastOn()");
    return new PrivateChannel('order.'.$this->event->ch);
}

如果我将BROADCAST_DRIVER切换到“log”,就会看到记录在那里的消息:

代码语言:javascript
复制
[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“不会导致进一步的活动,正如前面提到的。

队列驱动程序设置为“同步”的行为相同,所以不是队列设置。

我唯一的线索是,没有调用通道身份验证函数,但是从医生们的角度来看,这是否与发送相关(比如侦听身份验证)并不十分清楚。

代码语言:javascript
复制
Broadcast::channel('order.{orderId}', function ($user, $orderId) {
    \Log::debug('callback in channels.php');
    return true;
});

在任何日志中都没有错误,没有异常,也没有任何明显错误。

我还能看到哪些信息丢失了呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-01 09:38:51

这不是对最初问题的直接回答,因为那是一年半前的事了,但我遇到的问题与使用pusher pusher 7.2和WebSockets1.13.1描述的问题相同。

乒乓消息被发送和接收,但我无法从Laravel 9应用程序中广播我自己的消息。

降级到pusher-php-server 7.0.2解决了这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67444228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档