我来自委内瑞拉,我在尝试将laravel echo与一个项目整合时遇到了一个问题,我尝试了一切,我希望得到你的帮助。
也许我的工作方式不对。
我正在尝试将广播事件与socket io结合使用,因为我在一家初创公司工作,很难像pusher这样支付服务费用。
我想做一个简单的实时聊天。。
那是我的聊天室管理员。。
public function index(Request $request){
$sender=Auth::user()->id;
$receiver=\App\User::find(2);
$message=new Message;
$message->message="Hola, esto es una prueba de eventos";
$message->user_receiver_id=$receiver->id;
$message->user_sender_id=Auth::user()->id;
$message->id_chat=1;
$message->save();
event(new \App\Events\sendMessage($message,$receiver));
return response()->json(["status"=>"ok"]);
}
这种聊天存储在数据库中,根据消息确定群组(chat)。
将触发的事件是:
类sendMessage实现ShouldBroadcast{使用Dispatchable, InteractsAnd Socket, SeriazesModel;
/**
* Create a new event instance.
*
* @return void
*/
public $message;
public $user_receiver;
public function __construct(Message $message,User $user_receiver)
{
$this->message=$message;
$this->user_receiver=$user_receiver;
}
public function broadcastOn()
{
\Log::info($this->message->id_chat);
return new PrivateChannel('chat.1');
}}
我的app.js是:
require('./bootstrap');
import Echo from "laravel-echo";
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});
window.Echo.channel('chat.1')
.listen('sendMessage', e => {
console.log(e);
});
首先,我只想从sendMessages事件中获取公共变量,然后我将构建视图。
我运行php artisan侦听器,并运行de laravel echo服务器。
当我发送消息时,laravel echo服务器和侦听器会发生这种情况:
Laravel echo服务器输出
在此输入图像描述
我认为这个过程很好,但我认为我只有客户的问题...
因为当我发送消息时,客户端没有发生任何事情。
对不起我的英语,我希望你能帮助我。
在我的情况下,我使用Redis,我注意到我的频道名称projectName_database有一个前缀,Laravel
您应该只使用使用序列化模型
此外,
广播(新的\App\Events\sendMessage($消息,$接收器));
您可以在这里找到Laravel 5广播示例,
https://github.com/durmus-aydogdu/real-time-application
例如,如果您使用Echo.channel(my-Channel
),您需要做这样的事情,出于某种原因,您需要在事件名称前添加(.)。
Echo.channel(`my-channel`)
.listen('.my-event', (e) => {
consolec.log(e);
});
我目前正在研究构建SaaS构建管理工具。我想知道的是,如果我使用laravel passport作为api令牌,我如何为用户分配角色,例如: SuperAdmin:可以创建项目|可以创建新用户并为用户分配角色。 管理员:可以查看项目。 因为我希望能够根据用户权限隐藏前端上的元素。 例如,如果我使用传统的laravel应用程序,我可以使用委托和刀片指令@role('admin')来显示基于用户权限类
我对拉威尔望远镜的部分有点困惑。 我有一个用户模型和表。 如何为用户分配用户、客户和/或管理员的角色。 我有一个带有vue和laravel api后端的水疗中心。我用https://laravel.com/docs/5.3/passport#consuming-使用javascript创建api 我如何分配哪个用户模型具有哪些作用域? 还是范围与角色不同? 您将如何实现这一点? 提前谢谢!
我对Laravel截断的数据有一个小问题。我将传递给我的后端值,该值可以是表中定义的“百分比”或“金额”,但在表中也可以为null,但每次尝试将其设置为null时,都会出现如下错误: {"discount_currency":["您输入的值无效。"]} 或者当我从处理请求中删除enum时,它会说 所以我传递数据抛出API从我的Vue,这个婴儿车的请求看起来像: 所以如果我删除...我有第二个错误。
我正在构建一个Laravel web应用程序,其中我需要一个动态图像库,我构建了一个后端管理面板,可以在其中添加图像,我成功地将图像添加并保存到数据库中,但我无法编辑或删除它们。 错误是: UrlGenerationException中的ErrorException。php第17行:缺少[Route:galleries.update][URI:backend/galleries/{gallery}
我试图设置一个属性,使用@产量和@部分,但如何?我试图用 和 但是它返回id= 我知道我可以用默认的id来管理它,但我不喜欢这种方式,如果我需要使用自定义属性呢?
我正在使用这个库:https://github.com/davibennun/laravel-push-notification 用于发送推送通知。我使用了示例代码,我的iPhone上的推送消息正在工作。 现在我只想向多个设备发送一条消息。文件上说我需要使用: 但是我想从devicecollection上的数据库中得到一个foreach循环。我该怎么和拉威尔一起做?非常感谢!