问题标签 [laravel-broadcast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2956 浏览

php - Laravel Echo join() 和 leave() 方法不会被触发

这是我的 Echo 配置:

在我的 vue 组件的 mount() 钩子中,我有:

在destroy() 钩子中:

但只有here()方法被触发,joining()方法leaving()没有。我究竟做错了什么?

0 投票
1 回答
700 浏览

c# - 如何从 c# 桌面应用程序连接到 Laravel 广播?

我有 laravel 聊天应用程序通过 laravel-echo-server 上的 laravel 广播工作。在前端,我使用 laravel-echo npm 包订阅频道并收听事件,但是如何订阅用 c# 编写的桌面应用程序中的频道?

我希望在 c# 上写下这样的内容:

0 投票
0 回答
867 浏览

php - Laravel 广播频道功能不会触发

所以我要使用 laravel 广播作为聊天应用程序,

我遵循Laravel 广播方法,

  • App\Providers\BroadcastServiceProviderproviders里面的数组中取消注释config/app.php

  • .env在 pusher 网站上注册,创建了一个频道,并用我的 pusher 频道信息填写了内部文件下面的字段

  • 在我broadcast.php将默认设置为的配置文件中driverpusher我还添加了

根据我在推送面板中的频道信息在pusher数组内排列connections

  • composer require pusher/pusher-php-server "~3.0"使用命令在我的 laravel 项目上安装了 pusher php 包

这是我的活动课

  • AppLog是我用于在项目内部登录的模型
  • 我一开始尝试实现ShouldBroadcast接口,但也没有用
  • 我还在EventServiceProvider.php文件中注册了我的事件并运行php artisan event:generate命令,这是EventServiceProvider $listen数组:

我还在文件中的其他命名空间旁边导入了事件命名空间: use \App\Events\TherapyMessageSent;

这是我在routes/channels.php文件中定义的通道:

最后,这是我的控制器方法:

  • 我的控制器类从 BaseController 扩展而来,BaseController 是一个自定义控制器类,具有辅助方法,例如success()validationError()errorWithMessage()

正如您在上面的代码中看到的那样,我填写$user$message使用了正确的值,并且请求可以正常工作

我认为通道方法甚至不会被触发,因为我AppLog在调用broadcast方法时检查表,只保存TherapyMessageSent事件broadcastOn函数内部的日志,甚至我在方法开头保存的日志channels.php也没有保存,所以我认为这个方法永远不会执行。

如果有人可以帮助我解决问题,我将不胜感激。

0 投票
3 回答
2834 浏览

laravel - 如果在 Laravel 中广播事件,如何测试/断言

我正在开发一个 Laravel 应用程序。我在我的应用程序中使用 Laravel 广播。我现在要做的是尝试测试是否在 Laravel 中广播了一个事件。

我正在广播这样的事件:

我想测试是否广播了该事件。我该如何测试它?我的意思是在单元测试中。我想做类似的事情

附加信息

该事件在创建项目时触发的观察者事件中广播。

0 投票
3 回答
7270 浏览

laravel - Laravel WebSockets:订阅私人频道不起作用

软件:

在 websockets.php (完整文件)中,我有我的证书local_certlocal_pk设置了我的证书。如果我将此选项留空,我什至无法连接。我也设置verify_peerfalse,因为如果我不这样做,我也无法连接。

广播.php:

如果我摆脱 curl 选项,我会得到一个空的 Broadcast 异常,如此处所述

bootstrap.js:

这是我在运行后从日志中得到的全部内容php artisan websockets:serve

我应该得到的是关于收听/加入频道和发送消息等的消息。但目前所有这些都不起作用。我有这样的事情:

事件:例如UserNotificationSent.php

当然,在内部,我还设置了其他所有内容:带有身份验证的频道等。一切都在我的机器上本地运行,在较低的 Laravel 版本(5.4)上。但是我最近更新到 5.8 并部署到服务器上,现在我为此苦苦挣扎。

我还在github 上打开了一个问题

重要更新 这实际上不是由于部署,我在本地设置中遇到了同样的问题。有趣的是,通过Echo.channel()作品收听频道.private()是行不通的。在 Github(上面的链接)上,我遇到了一个有完全相同问题的人。我们还没有找到解决方案。

0 投票
2 回答
560 浏览

laravel - Laravel 广播通知 - 尝试发送通知时出现错误“array_key_exists()”

我正在尝试在数据更改时向用户发送广播通知。但是每次我尝试发送通知时,都会收到此错误:

array_key_exists(): The first argument should be either a string or an integer.

这是我的通知:

当我从via阵列中删除“广播”时,一切正常。我不知道我做错了什么!有人可以帮忙吗?谢谢!

编辑 这是我完整的堆栈跟踪

编辑 2

在我的通知构造函数中,我有一个使用复合键的模型。当我删除这一行时:$this->games = $games;,并编辑$this->summary为一些字符串 - 它可以工作!$games是 Model 的集合Game

但我不知道为什么会这样?!

0 投票
1 回答
54 浏览

laravel - VueJS - 无法访问在mounted() 中的mounted() 中声明的已分配this.property

我正在做一个项目,我正在使用 axios get 从我的后端 laravel 获取 api 数据,并使用它的属性在我的组件的已安装部分中连接一个通道。

我正在通过 axios get 获取 api/user,其中包含

以下是我如何通过 axios 从我的 laravel 后端获取用户数据:

然后在我的 data() 部分中将其声明为空数组,如下所示:

我可以通过 {{ user.id }} 在我的模板中访问属性,例如 id,当我尝试在 mount() 部分中访问它时,它给了我一个对象,但是当我尝试 console.log(this. user.id) 在挂载中,它会抛出 undefined 。我需要在已安装部分访问 this.user.id 的原因是因为我使用它来连接我通过 Laravel Echo 使用的通道,如下所示:

我对 Vue 还很陌生,我不知道我在这方面做错了什么。如果有人能指出我做错了什么或者有更好的方法来做这件事,那将是非常有帮助的。

0 投票
1 回答
799 浏览

laravel - Vue.js component not updating after notification is received via websocket in Laravel

I am trying to populate the notification list on real-time but view vue component is not updating. My code so far:

app.js

NotificationItem.vue

NotificationAlert.vue

In my blade file I'm using it as

Except for real-time update everything else is working. If I refresh notifications are properly fetched and notification alert is properly displayed. But when Notification event occurs notification doesn't render on view without reloading but if I print the notification object in console it works perfectly fine. Any suggestion or help would be appreciated. Thanks

0 投票
1 回答
3305 浏览

laravel - Laravel 广播 - 无需承载令牌即可访问的私人频道

我已经使用 laravel-echo 设置了 socket.io 来加入并收听 laravel 广播频道。公共频道运行良好,因为它们不需要任何身份验证。私人频道没有按预期工作,我可以在不传递授权令牌的情况下使用 socket.io 客户端加入任何私人频道

Socket.io 客户端

Laravel-Echo-服务器配置

通道路线

广播服务提供者

授权配置

127.0.0.1:8000/broadcasting/auth 无令牌访问时响应

Laravel-Echo-服务器

所以我的猜测是 laravel-echo-server 在响应“未验证”时没有返回 false

任何帮助将不胜感激

0 投票
0 回答
600 浏览

node.js - 带有 Laravel Echo 和 Socket.io 的节点但没有响应

我正在为移动应用程序设置 Laravel API 以调用 API,并且我目前正在配置 Laravel 广播,这是我的新手。我已经为服务器端安装了 laravel-echo-server 和 redis,而为客户端安装了 laravel-echo 和 socket.io-client。

如您所见,在下面的屏幕截图中,客户端订阅了频道。

在此处输入图像描述

这是我的代码

订单控制器.php

订单事件.php

频道.php

我尝试node index.js在我的 index.js 中使用以下代码在终端中运行,并且 console.log 没有响应:

index.js