账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    swoole_client同步tcp客户端被动断开后,再次发送数据到服务器时,返回结果不为false
    17
    0

    swoole_client同步tcp客户端被动断开后,再次发送数据到服务器时,返回结果不为false

    环境

    swoole-4.3.1
    php7.0.33

    相关代码

    server.php
    <?php
    // 创建Server对象,监听 127.0.0.1:9501端口
    $serv = new swoole_server("127.0.0.1", 9501);
    // 设置心跳检测
    $serv->set([
        'heartbeat_idle_time'      => 5,
        'heartbeat_check_interval' => 5,
        'task_enable_coroutine'    => true,
        'task_worker_num'          => 1,
    ]);
    //监听连接进入事件
    $serv->on('connect', function ($serv, $fd) {
        echo "Client: Connect.\n";
    });
    
    //监听数据接收事件
    $serv->on('receive', function ($serv, $fd, $from_id, $data) {
        var_dump($data);
        $serv->send($fd, "Server: " . $data);
        $serv->task('aaa');
    });
    
    //监听连接关闭事件
    $serv->on('close', function ($serv, $fd) {
        echo "Client: Close.\n";
    });
    
    //启动服务器
    $serv->start();
    client.php
    <?php
    $client = new \swoole_client(SWOOLE_SOCK_TCP | SWOOLE_KEEP);
    $client->connect('127.0.0.1', 9501, 5);
    sleep(10);
    var_dump($client->send(1));
    var_dump($client->send(1));

    结果

    server.php结果
    Client: Connect.
    Client: Close.
    // client.php结果
    int(1)
    bool(false)

    从结果上看server并没有受到client发出的1,但client的发送结果却不返回false,求解

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部