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==
好奇怪为什么会这样
这个我知道,协议不对应导致的。客户端用的websocket协议,服务端也得是websocket协议,start_gateway.php 里 tcp改成websocket就好了。
😄,多谢了,刚仔细检查了发现是这个问题导致的,搞的我弄半天