gpt4 book ai didi

PHP 响应并行请求

转载 作者:行者123 更新时间:2023-12-03 13:10:29 24 4
gpt4 key购买 nike

我有一个通过 websocket 与我的服务器通信的应用程序。我正在使用 Ratchet,一切正常。我要实现的下一件事是向其他一些服务器发出请求,并通过 websocket 将响应推送到客户端。我的问题是如何使用 react 发出并行请求。假设我有 5 个端点,我想获得并行(线程)响应。例如,我想每 .2 秒调用一次每个端点并向 websocket 服务器客户端发送响应。例如(这只是演示代码):

$server->loop->addPeriodicTimer(.2, function ($timer) {
curl('endpoint1');
});

$server->loop->addPeriodicTimer(.2, function ($timer) {
curl('endpoint2');
});

$server->loop->addPeriodicTimer(.2, function ($timer) {
curl('endpoint3');

});

但是这个计时器不是这样工作的。甚至有可能通过 react 来实现这一目标吗?

我没有显示 websocket 代码,因为客户端之间的通信很好。

最佳答案

开始。 " React (Ratchet) "- 以单线程模式运行(特性 libevent)。也就是说,任何会阻塞进程的东西——坏主意...... curl 请求——将停止工作套接字服务器,直到它收到响应。

对于您的应用程序 - 我会使用 ZMQ .
重点是这样的:

  • 您运行工作进程(例如:ZMQWorker),
  • 您的服务器在 ZMQWorker 上发送 curl 数据(通过 ZMQ)。
  • ZMQWorker 发送 Curl 请求
  • 发送请求后,ZMQWorker 向 WebSocket 发送响应
    (通过 ZMQ)。您可以通过 获得reactphp/zmq

  • 如果您需要发送大量并发请求 - 您将需要 pthread 库 - 它提供多线程。

    我也听说可以提供工作 pthread + libevent,但我个人没有这样做。

    P.S 但是使用ZMQ架构,你得到一个分布式架构,同样可扩展!

    关于PHP 响应并行请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34822562/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com