Laravel回声触发事件从前端

时间:2018-09-11 15:01:44

标签: php laravel

我正在尝试使用Laravel和Echo构建实时游戏。

这是多人游戏,每走一步,我都需要更新两位玩家的得分。

一种明显的解决方案是将请求发送到后端以及后端触发事件,该事件会更新游戏专用频道上所有用户的得分。

在这种情况下,第二种解决方案对于Laravel Echo来说很奇怪,它从这样的前端部分触发事件:

{ ChildProcessError: `convert /tmp/u-v1XVunSvidhWiZ1pTozaZ4JbE9Y2-0.jpg -thumbnail 200x200^ -gravity center -extent 200x200 /tmp/u-v1XVunSvidhWiZ1pTozaZ4JbE9Y2-0.jpg_200` failed with code 1
    at ChildProcess.<anonymous> (/user_code/node_modules/child-process-promise/lib/index.js:132:23)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:920:16)
    at Socket.<anonymous> (internal/child_process.js:351:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:509:12)
  name: 'ChildProcessError',
  code: 1,
...
  stdout: '',
  stderr: 'convert: unrecognized option `-gravity center\' @ error/convert.c/ConvertImageCommand/1722.\n' }

这似乎不是最佳做法,对吧?

因此,第一个解决方案有一个缺点,它将请求发送到后端并等待响应,这对于游戏应用程序是否足够快?

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

1 个答案:

答案 0 :(得分:1)

我将使用套接字和Redis订阅发布/订阅事件,本文反映了我的意思。

https://medium.com/@adnanxteam/how-to-use-laravel-with-socket-io-e7c7565cc19d