AsyncTcpConnection调用不到tast的workerman

tianmc

task worker的代码:

<?php
    use Workerman\Worker;
    require_once './Workerman/Autoloader.php';

    // task worker,使用Text协议
    $task_worker = new Worker('Text://0.0.0.0:12345');

    // task进程数可以根据需要多开一些
    $task_worker->count = 1;
    $task_worker->name = 'TaskWorker1'; 
    $task_worker->onMessage = function($connection, $task_data)
         {
                   //这下面的代码一直不会执行?????????
                   // 发送结果
           $task_result='1111';
           $connection->send($task_result);
        };

     // 运行worker
     Worker::runAll();
?>

调用代码:

// 与远程task服务建立异步链接,ip为远程task服务的ip,如果是本机就是127.0.0.1,如果是集群就是lvs的ip

        $task_connection = new AsyncTcpConnection('Text://127.0.0.1:12345');
        // 发送数据
        $task_connection->send('send to task workerman');
        // 异步获得结果
        $task_connection->onMessage = function($task_connection, $task_result)
                        {
                                                       //这下面的代码一直调用不了????
                                                        echo $task_result;
                             //获得结果后记得关闭链接
                             $task_connection->close();
                        };

        $task_connection->onError = function($connection, $code, $msg)
                                    {
                                        //这里也没有报错
                                    };

        // 执行异步链接
        $task_connection->connect();

代码如上,不知道哪里出问题了, 两个onMessage方法都一直不会被调用。 帮忙看看啊!!! 多谢!!

3397 1 0
1个回答

walkor 打赏

需要在workerman环境 onXXX 回调中调用代码

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