start_gateway.php中的全局wswork如何能在event.php中访问

hustfg

平台:windows 框架:gateway 请教问题:如何在event.php 访问到start_gateway.php变量
在start_gateway.php简述主进程

$ws_worker = new Gateway( "websocket://0.0.0.0:9090" );
$ws_worker -> count = 1;                 
$ws_worker -> startPort = 9100;
$ws_worker -> onWorkerStart = function( $worker )
{
     $inner_tcp_worker = new Worker( ‘sensor://0.0.0.0:9100’ );//自定义sensor协议
     $inner_tcp_worker -> onMessage = function ( $tcp_connection, $data )
               {
                   !!!目的想保留这个$tcp_connection,为了能在event.php中的$ws_worker 的onmessage函数中利用这个$tcp_connection的send 函数将web前端发的数据,下传到对应的传感器
                }
}

在event.php类中

class Events{ 
 public static function onMessage($client_id, $data)  
      {
         !!!目的想利用在start_gateway.php 文件中$tcp_connection的send函数下发将$data 数据。但这里无法访问$tcp_connection,我不知道如何实现,请教大家提点建议。
      }
}
2215 1 0
1个回答

walkor

gateway进程和Events.php 不在一个进程,Events.php工作在businessWorker进程,gateway进程和businessWorker进程间变量无法互相共享访问。

你可以在Events.php 的onWorkerStart里创建$inner_tcp_worker,这样是在一个进程里

  • 暂无评论
年代过于久远,无法发表回答
🔝