使用套接字时,尝试运行后台任务时遇到了一些麻烦。由于它完全没有错误,因此我对如何进行操作有些迷茫。这是我的代码(至少是相关部分):
$socket->on('post_location', function ($data)use($socket){
$path = DOCROOT;
exec("cd $path && cd .. && sudo php oil refine testsocket> /dev/null &");
$socket->broadcast->emit('post_location', array(
'username'=> $socket->username,
'message'=> $data
));
});
我也尝试过:
$socket->on('post_location', function ($data)use($socket){
Worker::test_socket();
$socket->broadcast->emit('post_location', array(
'username'=> $socket->username,
'message'=> $data
));
});
在workerman的Worker类中,后台任务。请注意,其他所有内容都可以正常运行,但是由于某种原因,我似乎无法运行该任务,因此它什么也没做。如果我在其他任何地方调用它,它将起作用。此时的任务只是一个日志:
class Testsocket
{
public static function run ()
{
\Log::info('Testing');
}
}
不胜感激任何指针。谢谢!