问题标签 [laravel-echo]
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.
laravel - 无法接收通知 - 带有 Socket.io 的 Laravel
我正在尝试构建一个聊天应用程序,为此,我正在使用 Laravel 的 Echo 和 Laravel echo 服务器。想法是收听消息通知。
我已经根据以下内容做了所有事情:
https://laravel.com/docs/master/notifications
https://laravel.com/docs/master/broadcasting
resources/assets/js/bootstrap.js:(当然我已经使用 NPM 编译了)
laravel-echo-server.json:
ChatController.php(触发通知)
消息通知.php
刀片视图(监听通知):
当我访问该页面时,我会看到来自 Laravel Echo 服务器的以下日志:
[上午 9 点 34 分 41 秒] - XnmH1wzMJM-5VON-AAAA 已通过身份验证:private-App.User.7
[上午 9 点 34 分 41 秒] - XnmH1wzMJM-5VON-AAAA 加入频道:private-App.User.7
但是当我发出该通知时,我没有看到浏览器控制台上记录了任何内容。
完整的源代码:
https://github.com/xparthxvorax/Laravel-Notifications
注意:我可以成功收听事件但不能收听通知。
php - Laravel Echo 不会使用 socket.io 捕获事件
我使用 Redis 和 Socket.io 来设置实时更新,但 Laravel Echo 没有捕获事件。
如果我使用 io() 的实例,它就可以正常工作。这是我在我的 vue 应用程序中监听事件的代码:
不会捕捉事件
会捕捉事件
我的节点 js 代码来推送事件。
我的 Laravel 事件广播
我尝试更改事件传递给 Laravel Echo 的方式,因为默认情况下它会接收它们,users:App\Events\UserCreated
但我没有运气。
laravel - Laravel Echo 导致发布路由失败
当我没有在bootstrap.js
.
作曲家.json
包.json
引导程序.js
广播.php
我在我的本地主机上,并尝试了多个教程和许多变体,但没有一个能解决问题。应用程序正确加载了所有 get api 路由,但是当我尝试登录时出现 500 错误。
我也在使用 Vue 和 VueRouter,以防有任何影响。
编辑
似乎有东西干扰了用 axios 发送的 CsrfToken。如果我重新排列我的 bootstrap.js 文件,以便在 axios 之前导入 Echo:
发布路线完美无缺,但是当我通过 axios 发布路线提交它们时,我无法收听任何事件(如果我通过 Artisan 控制台命令提交事件,它工作正常,我可以收听响应并将其输出到控制台)。
如果我dd('test')
在事件构造函数中,后路由输出test
. 如果我dd('test')
在 broadcastOn 方法中,post 路由不会命中这个函数。
javascript - 在反应本机客户端中使用 laravel echo 服务器
我想在反应本机应用程序中使用 laravel 回显服务器,但我认为出了点问题,我不知道是什么我在日志中收到此错误
undefined 不是对象(评估 'this.connector.channel')通道 D:\react-native\taav\node_modules\laravel-echo\dist\echo.js:750:34 componentDidMount
这是我的 laravel
我知道我的 laravel 服务器是正确的,因为我可以在浏览器中正确使用我的套接字
和我的反应本机代码:
laravel-5.4 - Laravel Echo / Pusher 身份验证失败 (403)
学习Laravel
事件广播//Echo
和Vue
玩这个教程。
我不断收到对身份验证的响应,我怀疑我对路由403
缺乏了解是问题所在。channels.php
我正在使用Player
模型而不是可以正常User
工作的模型Auth
。
事件ChatMessageSend
监听器ChatMessageNotification
(默认/空)
控制器ChatController
路线channels.php
在我的Player
课堂上
当玩家登录时,我会在会话中存储一个我想用作频道的聊天室 ID。
我的vue
聊天实例是
但我不断得到
laravel - Laravel Echo 没有实时接收推送通知 - 想法?
我正在尝试使用此站点的想法来实现用户消息传递方法:
https://www.sitepoint.com/add-real-time-notifications-laravel-pusher/
关键思想是使用 laravel 通知功能更新通知表(用于将消息标记为已读),同时将消息作为私有频道广播到推送器,并通过 Laravel Echo 在客户端收听。
我想在添加新练习时发送通知,所以我使用 EventServiceProvider 来监听数据库创建事件,这就是我触发通知的地方:
通知:
这只是填充通知表并广播到推送器。
这是我的主视图文件:
这是我显示消息的标题视图的相关部分:
这是我的 app.js:
事情在某种程度上起作用,但并不完全。在我创建一个新练习后,消息立即出现在数据库和 Pusher 中,当您单击 MarkAsRead 通知时,通知被标记为已读。这是问题所在:
当我创建一个新练习时,客户端不会实时更新。它似乎只在页面刷新时产生变化。
根据我上面的内容,关于如何解决问题的任何提示?我对javascript一无所知,尤其是变量范围、执行顺序等。所以我怀疑我忽略了一些更好的点。在成为开发人员之前,我是吉他手!
谢谢!
布赖恩
laravel-5 - Laravel 5.4 Pusher (laravel-echo) 无法访问私有频道
我一直在测试 Laravel Echo,它适用于非私人频道。我收到通过该非私人频道上的事件传递的数据。但问题是当我将事件设置为在私人频道上广播时,我收到如下错误消息: 注意:我按照图片以用户身份登录。
当我订阅私人频道时,在 Laravel 中我去了 config/app.php 并取消注释“ App\Providers\BroadcastServiceProvider::class, ”。还转到 App\Providers\BroadcastServiceProvider.php 并使用如下图所示的代码:
我的 Resources/assets/js/bootstrap.js 文件具有以下代码并使用 laravel mix 编译:
顺便说一句,我已经安装了所有依赖项,即:-composer 需要 pusher/pusher-php-server,-npm install --save laravel-echo pusher-js,还使用对 .env 文件的引用配置了我的 config/broadcasting.php输入了推送器所需的所有信息。正如您所看到的,我从事件中接收数据的非私人频道一切正常,如下图所示:
为什么即使我是已登录的经过身份验证的用户,并且在 BroadcastServiceProvider.php 文件中我对 Broadcast::channel()
方法返回 true,我也看不到从我的事件传递的数据?我从非私人频道接收数据,那为什么不在私人频道呢?我做错了什么?为什么我在控制台而不是数据中出现这些错误:
顺便说一句,我一直在关注本教程,直到我被私人频道卡住: https ://mattstauffer.co/blog/introducing-laravel-echo
javascript - Laravel 广播:由于身份验证错误,私人频道无法正常工作
首先我想说,我知道关于这个主题真的有很多话题。我几乎都阅读了它们,但没有成功。
我正在使用 Laravel Echo 和 Pusher 来使 websockets 工作。这实际上适用于普通(阅读:非私人)频道。我收到了状态良好的 Javascript 对象。
问题开始的地方是当我尝试在私人频道上发送内容时。我在控制台中收到以下警告:
Pusher : Couldn't get auth info from your webapp : 500
我猜这是由于验证私人频道的问题。我试图在以下地方对它们进行身份验证:
广播服务提供者:
或路由/channels.php:
但这些都不起作用。我还尝试将通配符更改为 a *
,而不是 the ,{userid}
但这也不起作用。
但是,Pusher 以正常的形式显示事件。所以他们被发送了,只有 Echo 的接收才会出现问题。我的 Echo 配置如下所示:
我正在使用 Laravel 5.4 和 PHP 7.x。有人可以帮忙吗,因为我迷路了。