问题标签 [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 - Laravel Echo - default.a.channel 不是一个函数
我正在尝试使用推送器设置 Laravel Echo,以实现实时通知。
首先,我安装了 Laravel Echo 和 Pusher:
在此之后, bootstrap.js
我取消了代码的注释(如指南所说):
我已经运行gulp
,现在当我访问该页面时,我收到此错误:
laravel - laravel echo 没有收到广播
我正在尝试使用 Vue 2 和laravel-echo-server通过 Laravel Echo 接收广播事件,但它不起作用。我也将 laravel-echo-server 设置为 dev 模式,可以看到我进入频道,但同时离开?如果这是问题所在,我该如何阻止这种情况发生并留在频道中?我还可以看到广播正在被触发,因为我正在运行php artisan queue:work redis
并且每次发送事件请求时我都会收到Processed: Illuminate\Broadcasting\BroadcastEvent
,所以我知道这也有效。为什么这行不通?我真的要疯了。
这是我的 bootstrap.js:
我的 app.js:
我的活动:
最后,我的 laravel-echo-server.json:
我在任何地方都没有收到任何错误,而且似乎我的事件正在被触发和处理,但 Echo 只是没有收到该事件。如前所述,每次触发事件时,我都会从控制台(laravel-echo-server 终端选项卡)获取此信息:
laravel - 使用 Pusher 和 Laravel Echo 广播
我正在阅读本教程介绍 Laravel Echo。广播的事情正在完善。每当我执行命令时php artisan chat:message "something"
。事件被触发并将数据存储在数据库中。但是继续使用 Laravel Echo。我尝试了很多,但我无处可去。我已将 Echo 放入其中,/js/app.js
但在文档中提到了/js/bootstrap.js
. 由于我正在关注本教程,因此我将它放在/js/app.js
Echo 中,不会在日志中显示数据。我正在使用ubuntu
.
测试事件:
发送聊天命令代码:
Laravel 回声:
每当我从推送者发送事件时,还有一件事。Pusher 能够正确发送。
php - 如何在没有 laravel 框架和 npm 的情况下使用 laravel echo
有什么方法可以在没有 Laravel 框架和 NPM 的情况下使用 Laravel-echo 库?只需使用<script>
标签并将库添加到我的项目中。
laravel - Laravel 广播不向推送者发送事件
我已经将 Laravel 设置为使用推送器为 Laravel Echo 发送事件,但是我从工匠控制台触发的事件没有到达推送器。我从推送调试控制台触发的事件工作正常,所以前端部分没问题。流浪虚拟机会干扰它吗?
我的 .env 文件
我的广播.php
事件:
该事件是从观察模型事件的观察者类触发的created
。
观察者注册在AppServiceProvider
当我运行创建新消息的控制台命令时,终端会显示:
注意:大多数名称都是机密的,所以我使用了事件名称、频道等占位符,但我希望相关信息在那里。
谢谢!
laravel - Laravel 事件未广播
我正在为应用程序开发聊天/消息功能。当用户发送消息时,我希望触发并广播特定事件。然后我希望 Laravel Echo 通过 Laravel Echo 在事件的广播频道上收听事件,使用pusher
然后,我希望 Laravel Echo 使用驱动程序
我希望 Laravel Echo 实现位于 Vue 组件中并检索通过事件广播的数据。目前,我无法将事件广播到私人频道或只是一个频道。
这是我所做的:
1) 将配置添加到.env
.
2)添加配置bootstrap.js
:
3) 添加了 auth check in App\Providers\BroadcastServiceProvider
(如果用户现在登录则返回 true):
4) 添加App\Providers\BroadcastServiceProvider::class,
到App/config/app.php
.
5) 创建了 Event App\Events\UserSentMessage
,它在一个PrivateChannel
命名的chat
. 我也尝试过广播到Channel
. 我检查并通过调用event()
控制器中的帮助程序触发了事件,它似乎没有被广播。我也尝试过使用broadcast
提到的控制器中的方法。
6)mounted
在有效的 Vue 组件中的 Vue 生命周期钩子中添加了以下内容(组件正在按预期呈现数据等,只是不适用于 Laravel Echo atm):
也试过:
Vue 组件正在成功订阅指定的频道。推送器调试控制台识别出它正在被订阅,但事件在触发时永远不会被广播。
似乎是广播事件存在问题。我也尝试过使用broadcast()
助手,而不是event()
助手。
此外,当通过 Laravel Echo 订阅活动时Echo.private()
。它似乎在频道名称前private
加上private-chat
.
laravel - Laravel Echo 没有收到 Pusher 事件
我在使用 Laravel Echo 收听 Pusher 频道时遇到问题。我无法在浏览器中得到任何响应(没有控制台日志)。
在我的 bootstrap.js 中,我得到了。
我使用浏览器控制台并输入:
我可以从 Pusher 调试控制台看到
- 连接我的应用程序
- 订阅我的频道
- 占用我的频道
然后我使用 Pusher 调试控制台发送默认事件:
但是,我的浏览器控制台中没有任何输出。
如果我在浏览器控制台中进一步输入:
我可以从 Pusher 调试控制台看到
- 取消订阅我的频道
- 已腾空我的频道
如何让 Laravel Echo 收听 Pusher 事件?
laravel - Laravel Echo 无法订阅 Pusher 私人频道
我无法在私人频道中收听活动。但是,我可以收听公共频道。
问题
这有效:
我可以在 Pusher Debug Console 中看到三个连续的事件:
- 联系
- 已订阅
- 占据
另外,如果我发送Channel: Foo.Bar; Event: App\Events\MyEvent
,我可以在浏览器控制台中看到输出。
但是,这不起作用:
我在 Pusher 调试控制台中看不到订阅。显然,如果我发送Channel: private-Foo.Bar; Event: App\Events\MyEvent
,我在浏览器控制台中看不到输出。
我做了什么
Broadcast::routes();
在boot()
方法中添加BroadcastServiceProvider
Broadcast::channel('Foo.Bar', function ($user, $FooBarId) {return true;});
在boot()
方法中添加BroadcastServiceProvider
与主管一起工作的队列。
- 正确
config\broadcasting
设置应用程序、密钥、机密、驱动程序、集群、加密。(我可以将事件从我的应用程序发送到 Pusher)
旁注
我可以使用我的应用发送和收听公共事件。只有当频道变为私有时,我才能收听(我的应用程序可以将私有频道上的事件发送到 Pusher)。
我怀疑它可能与身份验证有关,因为Broadcast::channel('Foo.Bar', callback)
它BroadcastServiceProvider
没有被执行。
我在这里想念什么?
laravel - Laravel 与 socket.io 的回声
我想在 javascript 端监听服务器端事件。我为此找到了这个包:
https://github.com/tlaverdure/laravel-echo-server
如果这么多次,我已经阅读了所有内容:
https://laravel.com/docs/5.3/events
https://laravel.com/docs/5.3/broadcasting
https://laravel.com/docs/5.3/notifications
到目前为止,我已经这样做了:
控制器动作:
“NewVote”事件类:
Javascript:
laravel-echo-server.json
此命令已在运行:
当我触发事件时,我期待控制台按摩。但我没有在控制台上得到任何东西。
让我知道是否需要任何其他信息。
注意:我的 socket.io 服务器运行成功,没有任何错误。
谢谢,
帕思·沃拉