gateway的bussinesswork中onmessage获得message是请求头

pengzhen

gateway的bussinesswork中onmessage获得message是请求头,而不是客户端发送的信息

客户端

for( $i = 0;$i<=1;$i++ ){
        $con = new AsyncTcpConnection('ws://x.x.x.x:8282');
        $con ->onError = function(AsyncTcpConnection $connection, $code, $msg ){
            echo $code, $msg;
        };
        $con->connect();
        $con ->send( 'ddd'  );
        echo $i,PHP_EOL;
    }  

bussinessowrk代码

public static function onMessage( $client_id, $message ){
        //var_dump( self::$bussiness_worker_id );
        var_dump($message);
        // $key = 'wait:http:'.self::$bussiness_worker_id;
        // self::$redis ->lpush( $key, str_repeat( 'a', random_int( 1, 100 ) ) );

    }

打印出来的信息

string(157) "GET / HTTP/1.1
Host: x.x.x.x:8282
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: O6+A0kwSG+PzfTJBstBUhw==

好奇怪为什么会这样

526 1 0
1个回答

yongdao35

这个我知道,协议不对应导致的。客户端用的websocket协议,服务端也得是websocket协议,start_gateway.php 里 tcp改成websocket就好了。

  • pengzhen 2023-03-01

    😄,多谢了,刚仔细检查了发现是这个问题导致的,搞的我弄半天

年代过于久远,无法发表回答
🔝