问题标签 [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.
php - Laravel Echo join() 和 leave() 方法不会被触发
这是我的 Echo 配置:
在我的 vue 组件的 mount() 钩子中,我有:
在destroy() 钩子中:
但只有here()
方法被触发,joining()
方法leaving()
没有。我究竟做错了什么?
c# - 如何从 c# 桌面应用程序连接到 Laravel 广播?
我有 laravel 聊天应用程序通过 laravel-echo-server 上的 laravel 广播工作。在前端,我使用 laravel-echo npm 包订阅频道并收听事件,但是如何订阅用 c# 编写的桌面应用程序中的频道?
我希望在 c# 上写下这样的内容:
php - Laravel 广播频道功能不会触发
所以我要使用 laravel 广播作为聊天应用程序,
我遵循Laravel 广播方法,
App\Providers\BroadcastServiceProvider
从providers
里面的数组中取消注释config/app.php
.env
在 pusher 网站上注册,创建了一个频道,并用我的 pusher 频道信息填写了内部文件下面的字段
- 在我
broadcast.php
将默认设置为的配置文件中driver
,pusher
我还添加了
根据我在推送面板中的频道信息在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
也没有保存,所以我认为这个方法永远不会执行。
如果有人可以帮助我解决问题,我将不胜感激。
laravel - 如果在 Laravel 中广播事件,如何测试/断言
我正在开发一个 Laravel 应用程序。我在我的应用程序中使用 Laravel 广播。我现在要做的是尝试测试是否在 Laravel 中广播了一个事件。
我正在广播这样的事件:
我想测试是否广播了该事件。我该如何测试它?我的意思是在单元测试中。我想做类似的事情
附加信息
该事件在创建项目时触发的观察者事件中广播。
laravel - Laravel WebSockets:订阅私人频道不起作用
软件:
- 拉拉维尔 5.8
- Laravel WebSockets 1.1
- Vue 2.6.10
在 websockets.php (完整文件)中,我有我的证书local_cert
并local_pk
设置了我的证书。如果我将此选项留空,我什至无法连接。我也设置verify_peer
为false
,因为如果我不这样做,我也无法连接。
广播.php:
如果我摆脱 curl 选项,我会得到一个空的 Broadcast 异常,如此处所述。
bootstrap.js:
这是我在运行后从日志中得到的全部内容php artisan websockets:serve
:
我应该得到的是关于收听/加入频道和发送消息等的消息。但目前所有这些都不起作用。我有这样的事情:
事件:例如UserNotificationSent.php。
当然,在内部,我还设置了其他所有内容:带有身份验证的频道等。一切都在我的机器上本地运行,在较低的 Laravel 版本(5.4)上。但是我最近更新到 5.8 并部署到服务器上,现在我为此苦苦挣扎。
我还在github 上打开了一个问题。
重要更新
这实际上不是由于部署,我在本地设置中遇到了同样的问题。有趣的是,通过Echo.channel()
作品收听频道.private()
是行不通的。在 Github(上面的链接)上,我遇到了一个有完全相同问题的人。我们还没有找到解决方案。
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
。
但我不知道为什么会这样?!
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 还很陌生,我不知道我在这方面做错了什么。如果有人能指出我做错了什么或者有更好的方法来做这件事,那将是非常有帮助的。
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
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
任何帮助将不胜感激