Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 来自前端的Laravel回波触发事件_Php_Laravel - Fatal编程技术网

Php 来自前端的Laravel回波触发事件

Php 来自前端的Laravel回波触发事件,php,laravel,Php,Laravel,我正试图用拉威尔和埃科建立实时游戏 这是一个多人游戏,在每一步之后我都需要更新两个玩家的分数 显而易见的解决方案是向后端发送请求,并在后端触发事件,该事件将更新游戏专用频道上所有用户的分数 第二种解决方案在这种情况下有点奇怪,它使用Laravel Echo,从前端部分触发事件,如下所示: Echo.connector.pusher.channels.channels.game_1.trigger(event, data) 这似乎不是最佳实践,对吗 所以,第一个解决方案有一个缺点,它将请求发送到

我正试图用拉威尔和埃科建立实时游戏

这是一个多人游戏,在每一步之后我都需要更新两个玩家的分数

显而易见的解决方案是向后端发送请求,并在后端触发事件,该事件将更新游戏专用频道上所有用户的分数

第二种解决方案在这种情况下有点奇怪,它使用Laravel Echo,从前端部分触发事件,如下所示:

Echo.connector.pusher.channels.channels.game_1.trigger(event, data)
这似乎不是最佳实践,对吗

所以,第一个解决方案有一个缺点,它将请求发送到后端并等待响应,对于游戏应用程序来说,它足够快吗


问题是在这种情况下哪种解决方案更好?

我会使用sockets和redis订阅发布/订阅事件,本文反映了我的观点


是的,您可以将请求发送到后端,例如,要将点存储到数据库,我将使用3个选项:1)当您在laravel echo上接收事件时,然后ping到后端。2) 在前端,当您收到事件时,ping到后端。3) 在laravel echo上,当您收到事件时,将其存储到消息队列引擎(如rabbitmq)中,然后在后端处理。@Germanaz0在您的
选项
中,您提到了“ping the backend”,您是否介意展示
laravel echo
如何使用任何数据ping后端?谢谢。@JustinMoh当然可以,只需使用fetch('backend-url/api/someAction')作为超级抽象示例,这将对后端进行api调用。@Germanaz0好的,这是一个ajax调用。我在想,如果您可以使用现有的web套接字连接进行ping返回。您好,即使触发了
游戏1的
事件
,您将如何更新到您的服务器?因为触发的事件只在客户端而不是服务器上广播。。。