php - swoole websocket 刚起的时候可以连接,一会就不行了 failed: Invalid frame header

查看:2177
本文介绍了php - swoole websocket 刚起的时候可以连接,一会就不行了 failed: Invalid frame header的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

swoole websocket 刚起的时候可以连接,一会就不行了
报错是:
failed: Invalid frame header
查了一下 进程是在的

$table = new swoole_table(1024);
        $table->column('fd', swoole_table::TYPE_INT);
        $table->create();


        $serv = new swoole_websocket_server("0.0.0.0", 9502);
        $serv->addlistener('0.0.0.0', 9503, SWOOLE_SOCK_TCP);
        $serv->table = $table;


        $serv->on('Open', function($server, $req) {
            $server->table->set($req->fd, array('fd' => $req->fd));//获取客户端id插入table
            $log =  "connection open: ".$req->fd."\n";
            echo $log;
            Logger::write($log);
        });

    
        $serv->on('Message', function($server, $frame) {
            $fd = $frame->fd;
            $info = $server->connection_info($fd);
            $log = "fd:".$frame->fd." data:".$frame->data."\n";
            echo $log;
            Logger::write($log);
            if( $info['server_port'] == 9503 )
                   $server->push($fd, "you are admin");
             else{
                 $server->push($fd, "this is server");
             }
        });

        $serv->on('Close', function($server, $fd) {
            $log = "connection close: ".$fd."\n";
            $server->table->del($fd); //从table中删除断开的id
            echo $log;
            Logger::write($log);

        });

        $serv->start();

在线求解决方案

加上了日志
结果报
zm_deactivate_swoole (ERROR 9003): worker process is terminated by exit()/die().、

解决方案

想起来了,好像韩大对这个问题回答过,给你地址。

http://group.swoole.com/quest...

========================

这个问题应该是传送信息有效长度的问题,给你个stackoverflow的文章,你参考下。
https://stackoverflow.com/que...

这篇关于php - swoole websocket 刚起的时候可以连接,一会就不行了 failed: Invalid frame header的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆