问题标签 [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.

0 投票
0 回答
121 浏览

socket.io - 是否可以在主脚本中安装 socket.io 客户端?

我正在使用 Laravel-echo。现在我只能在主 app.js 之前包含 socket.io 脚本。这使页面完全变慢。那么......可以在同一个文件中使用它们吗?

问题是我们必须使用服务器自动生成的js文件。

在此处输入图像描述

0 投票
1 回答
847 浏览

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

注意:我可以成功收听事件但不能收听通知。

0 投票
1 回答
3615 浏览

php - Laravel Echo 不会使用 socket.io 捕获事件

我使用 Redis 和 Socket.io 来设置实时更新,但 Laravel Echo 没有捕获事件。

如果我使用 io() 的实例,它就可以正常工作。这是我在我的 vue 应用程序中监听事件的代码:

不会捕捉事件

会捕捉事件

我的节点 js 代码来推送事件。

我的 Laravel 事件广播

我尝试更改事件传递给 Laravel Echo 的方式,因为默认情况下它会接收它们,users:App\Events\UserCreated但我没有运气。

0 投票
2 回答
324 浏览

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 路由不会命中这个函数。

0 投票
1 回答
1670 浏览

javascript - 在反应本机客户端中使用 laravel echo 服务器

我想在反应本机应用程序中使用 laravel 回显服务器,但我认为出了点问题,我不知道是什么我在日志中收到此错误

undefined 不是对象(评估 'this.connector.channel')通道 D:\react-native\taav\node_modules\laravel-echo\dist\echo.js:750:34 componentDidMount

这是我的 laravel

我知道我的 laravel 服务器是正确的,因为我可以在浏览器中正确使用我的套接字

和我的反应本机代码:

0 投票
3 回答
3074 浏览

laravel-5.4 - Laravel Echo / Pusher 身份验证失败 (403)

学习Laravel事件广播//EchoVue这个教程

我不断收到对身份验证的响应,我怀疑我对路由403缺乏了解是问题所在。channels.php我正在使用Player模型而不是可以正常User工作的模型Auth

事件ChatMessageSend

监听器ChatMessageNotification(默认/空)

控制器ChatController

路线channels.php

在我的Player课堂上

当玩家登录时,我会在会话中存储一个我想用作频道的聊天室 ID。

我的vue聊天实例是

但我不断得到

0 投票
1 回答
1989 浏览

laravel - Laravel Echo 没有实时接收推送通知 - 想法?

我正在尝试使用此站点的想法来实现用户消息传递方法:

https://www.sitepoint.com/add-real-time-notifications-laravel-pusher/

关键思想是使用 laravel 通知功能更新通知表(用于将消息标记为已读),同时将消息作为私有频道广播到推送器,并通过 Laravel Echo 在客户端收听。

我想在添加新练习时发送通知,所以我使用 EventServiceProvider 来监听数据库创建事件,这就是我触发通知的地方:

通知:

这只是填充通知表并广播到推送器。

这是我的主视图文件:

这是我显示消息的标题视图的相关部分:

这是我的 app.js:

事情在某种程度上起作用,但并不完全。在我创建一个新练习后,消息立即出现在数据库和 Pusher 中,当您单击 MarkAsRead 通知时,通知被标记为已读。这是问题所在:

当我创建一个新练习时,客户端不会实时更新。它似乎只在页面刷新时产生变化。

根据我上面的内容,关于如何解决问题的任何提示?我对javascript一无所知,尤其是变量范围、执行顺序等。所以我怀疑我忽略了一些更好的点。在成为开发人员之前,我是吉他手!

谢谢!

布赖恩

0 投票
0 回答
599 浏览

php - Laravel Echo 服务器抛出“无法设置未定义的属性 'socketId'”

如果我在公共频道上连接,一切都很好。但是,如果我在状态或私人频道上连接,我每次都会收到以下错误。

UnhandledPromiseRejectiionWarning:未处理的承诺拒绝(拒绝 id:[某个数字]):TypeError:无法设置未定义的属性“socketId”。

之后,我不再收到广播给用户的任何事件。用户经过身份验证并加入收听频道,但他们没有收到任何事件。

我正在使用 Laravel Echo Server 1.3 和 Laravel 5.4 和 Laravel Echo JS

这是我得到的屏幕截图:

Laravel Echo 服务器 SocketId 未定义

任何人都知道是什么原因造成的,我该如何解决?先感谢您!

0 投票
1 回答
1110 浏览

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

0 投票
2 回答
3215 浏览

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。有人可以帮忙吗,因为我迷路了。