在不同 PHP 个实例之间传递数据
Passing data between different PHP instances
index.php 由 Apache 解析。它需要将一些数据传递给另一个 PHP 实例,该实例恰好是一个 reactphp 循环。如何才能最好地实现这一点?两个脚本 运行 在同一台机器上。
<?php
//index.php
$status=sendDataToOtherInstance('hello'); //blocking function which returns true/false
.
<?php
//reactphp loop
$foo->on('connection', function ($data){
echo($data);
return $data==='hello';
});
您需要某种进程间通信。
你可以用IPC来做(当然);使用共享内存。或者性能稍差,但恕我直言,可管理性更好,使用 RAM 磁盘或临时文件系统上的临时文件。当然,IPC 也给了你等待信号量资源的能力,这可能会派上用场并提高响应能力(你可以通过在 reactphp 进程中打开一个套接字或一个完整的 HTTP 服务器来实现)。
您也可以通过利用外部应用程序(例如一些 *MQ 或 Redis)来做到这一点。
如果您有一个数据库,例如 MySQL,您可以通过共享 table.
拥有两个进程 "communicate"
几个选项:
两个进程之间的 HTTP
像你说的有点乱,还不错,会很快,就是有点乱。
Unix 套接字文件
唯一的问题是 reactphp
目前不适用于 unix 套接字。
TCP 套接字
这应该有效。但是和第一个选项一样笨重。
老实说,这听起来像是您达到了 php 的极限。
Node.js
我不确定你是否用过它,但 node.js
就是为这类任务而生的。并允许许多 php 不允许的功能。
正如 LSemi
所说,您可以使用共享内存来做到这一点,或者基本上您已经有了一个 WebSocket 服务器 为什么不使用 PHP WebSocket 客户端库获得响应?
index.php 由 Apache 解析。它需要将一些数据传递给另一个 PHP 实例,该实例恰好是一个 reactphp 循环。如何才能最好地实现这一点?两个脚本 运行 在同一台机器上。
<?php
//index.php
$status=sendDataToOtherInstance('hello'); //blocking function which returns true/false
.
<?php
//reactphp loop
$foo->on('connection', function ($data){
echo($data);
return $data==='hello';
});
您需要某种进程间通信。
你可以用IPC来做(当然);使用共享内存。或者性能稍差,但恕我直言,可管理性更好,使用 RAM 磁盘或临时文件系统上的临时文件。当然,IPC 也给了你等待信号量资源的能力,这可能会派上用场并提高响应能力(你可以通过在 reactphp 进程中打开一个套接字或一个完整的 HTTP 服务器来实现)。
您也可以通过利用外部应用程序(例如一些 *MQ 或 Redis)来做到这一点。
如果您有一个数据库,例如 MySQL,您可以通过共享 table.
拥有两个进程 "communicate"几个选项:
两个进程之间的 HTTP
像你说的有点乱,还不错,会很快,就是有点乱。
Unix 套接字文件
唯一的问题是
reactphp
目前不适用于 unix 套接字。TCP 套接字
这应该有效。但是和第一个选项一样笨重。
老实说,这听起来像是您达到了 php 的极限。
Node.js
我不确定你是否用过它,但 node.js
就是为这类任务而生的。并允许许多 php 不允许的功能。
正如 LSemi
所说,您可以使用共享内存来做到这一点,或者基本上您已经有了一个 WebSocket 服务器 为什么不使用 PHP WebSocket 客户端库获得响应?