我有一个应用程序通过websocket与我的服务器进行通信。我正在使用Ratchet,一切都很完美。我想要实现的下一件事是向其他服务器发出请求,并通过websocket将响应推送到客户端。我的问题是如何通过反应提出并行请求。假设我有5个端点响应我想要并行(线程)。我想以每个.2s为例调用每个端点,并向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');
});
但是这个计时器不能这样工作。是否有可能通过反应实现这一目标?
我没有显示websocket代码,因为客户端之间的通信运行良好。
答案 0 :(得分:0)
开始。 “ React(Ratchet)” - 以一种线程模式运行(功能libevent)。也就是说,任何阻止进程的东西 - 糟糕的主意......卷曲请求 - 将停止工作套接字服务器,直到它收到响应。
对于您的应用程序 - 我会使用 ZMQ 。 重点是:
如果您需要发送大量并发请求 - 您需要 pthread 库 - 它提供多线程。
我也听说有可能提供pthread + libevent工作,但我个人并没有这样做。
P.S 但是使用架构ZMQ,你得到的是分布式架构,同样可扩展!