问题标签 [reactphp]

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 投票
1 回答
360 浏览

php - 如何在 reactPHP 服务器中保持状态?

到达PHP服务器。计算请求数的代码:

对于每个请求,计数器保持为 0,如何使 $counter 变量对服务器的所有请求保持不变?

0 投票
1 回答
332 浏览

php - ReactPHP:终止进程和关闭进程有什么区别?

使用 reactphp/child-process 库,

杀死我应该使用的过程$process->close()还是$process->terminate()

有什么不同?

0 投票
1 回答
524 浏览

php - reactPHP 进程启动阻塞定时器

我在这里有一个带有两个计时器事件的 reactPHP 循环:

没有子进程,计时器工作正常,我得到了输出:

但是当我在第一个计时器中启动一个进程时,第二个计时器被阻塞,直到进程完成。我得到输出:

不应该是异步的吗?该过程是 sleep(5) 所以我希望:

我错过了什么?

0 投票
3 回答
397 浏览

php - 在不同的 PHP 实例之间传递数据

index.php 由 Apache 解析。它需要将一些数据传递给另一个 PHP 实例,该实例恰好是一个 reactphp 循环。怎样才能最好地做到这一点?两个脚本都在同一台机器上运行。

.

0 投票
1 回答
377 浏览

php - 如何检索特定的 ReactPHP 套接字错误?

以下有一个错误事件。如何确定具体错误?

0 投票
0 回答
230 浏览

php - ReactPHP 中的监听器和计时器?

我正在尝试构建一个可以做一些事情的小应用程序。

一个主类将产生、销毁、倾听和管理工人......

一群由控制器管理的工作人员(最终他们将有一个长时间运行的进程来管理数据库中定义的队列)......

但是,我遇到了代码没有达到我预期的情况......

最后一段代码是我实际运行以启动应用程序的文件。它根据命令行参数路由应该生成哪种进程。(这样我就不必为一堆不同类型的进程创建一个文件。)

工人正确生成,第一条消息(Child 1 Said: Before Run)被发送给工人,工人将其发送给stdoutcontroller听到该事件并将其发送给它自己的stdout

但是,似乎监听器是一次性监听器,并且事件循环并没有重新处理它。这意味着,在初始之后的任何时候run()controller它都不会响应stdout来自工作人员的事件。

我是否必须使用计时器创建自己的显式侦听器?

0 投票
1 回答
680 浏览

php - 为什么 websockets 在一段时间后停止广播?(实现使用 ReactPHP、Ratchet 和 ZeroMQ)

我有一个小型 websocket 服务器,运行在一组库之上:

  • 反应PHP,
  • 棘轮

  • ZeroMQ,使用php-zmq包装器。

代码与教程中的代码基本相同。

事件循环正确启动,用户能够连接到服务器,他们收到正确的消息,当对方推送一些东西时,但过了一段时间,通常几天(取决于使用情况)消息停止到达。

使用并没有压倒一切——目前只有一两个前端开发人员连接,因为这是一个开发阶段。

循环正在运行,它在正确连接时返回 HTTP 101 切换协议,但不广播之前正确广播的消息。任何地方都没有错误。重新启动事件循环会有所帮助。

我的问题是:

1)什么会导致这种情况?有人遇到过类似的行为吗?

2)你能推荐一种我可以在事件循环的长时间运行过程中调试它的方法吗?

目前,我必须停止循环,更改代码(添加日志调用),再次重新启动循环并等待它再次出错,这至少是乏味的。

非常感谢任何帮助。

0 投票
1 回答
541 浏览

php - ReactPHP 和 Promise

我正在尝试使用 ReactPHP 理解 Promises 的概念

但在准备好$response之前发送。$result怎么能做类似等待的事情,$promise所以我可以$result正确发送?

我试图移动$response->endanother->then()部分,但是我没有在浏览器中得到任何响应(即脚本在 $app = function 已经完成时得到结果)。

0 投票
1 回答
513 浏览

php - 如何在同一php进程中通过异步命令(CQRS)检索新创建的实体?

我正在使用 CQRS 实现 PHP 应用程序。

假设我有CreateOrderCommand,当我有

CommandBus 现在只需将命令传递给适当的CreateOrderCommandHandler类,如下所示:

一切还好。

但是处理是无效的方法,所以我对进度或结果一无所知。例如,我可以做些什么来触发CreateOrderCommand,然后在同一进程中获取新创建的实体 ID(可能有一些被动等待它的创建)?

为了更接近 CQRS 可以提供的功能,命令总线应该能够RabbitMqCommandBus实现只序列化命令并将其发送到兔子队列。

因此,最终处理命令的进程可能是某个正在运行的消费者,并且这里需要进程之间的某种通信 - 以便能够以某种方式从消费者那里通知原始用户进程,它已完成(带有一些信息,例如新实体)。

我知道有 GUID 的解决方案 - 我可以用 GUID 标记命令。但是然后呢:

某些实现应该对具有特定 GUID 的命令进行一些事件检查(因此我也需要实现一些事件系统),以便能够例如回显进度或OrderCreatedEvent仅返回我将从该事件中获得的 ID。例如,异步处理命令的消费者进程可能会向兔子提供事件,用户客户端会接受它们并做出适当的响应(例如,回显进度,返回新创建的实体)。

但是怎么做呢?GUID 的解决方案是唯一的吗?什么是可接受的解决方案实现?或者,我错过了什么?:)

0 投票
2 回答
1089 浏览

php - 我需要在 PHP React websocket 事件循环中实现一个等待计时器(可能是多线程?)

我有一个 websocket 应用程序,我正在构建一个游戏,它建立在使用 React 事件循环的 Ratchet 上。在这个脚本的开始,我已经想出了如何实现一个周期性定时器,每秒向游戏发送一个脉冲,然后执行滴答声和战斗回合。这很好用。

但是,我最近意识到我还需要添加“滞后”客户端或暂停函数执行的功能。例如,如果玩家被惊呆了,或者我希望 NPC 在回复触发器之前等待 1.5 秒以获得更“真实”的对话感觉。

这个功能是内置在 react 库中的,还是我必须通过其他方式实现的?经过一些研究,看起来我可能正在寻找 pthreads,请参阅这个问题/答案:如何在 PHP 应用程序中使用多线程

为了更清楚我想要实现的目标,以这段代码为例:

显然,这不起作用,因为 sleep(1) 函数将停止整个服务器进程。

任何见解将不胜感激。谢谢!

更新:我的服务器脚本: