如何在 Events.php 中获取 GET 参数?

stephen

事情是这样的,用 Gateway 开发了一个项目,第一个版本因为数据没有压缩,导致流量占用比较大,
 
打算在第二个版本上开启压缩传输数据,但需要兼容压缩和不压缩两个版本同时支持,
 
打算在请求连接上添加参数,查资料发现可以在 start_gateway.php 中获取GET值,
 
但由于start_gateway.php 中没法获取 client_id (如果可以获取,希望不吝赐教)没法区分哪些客户端支持压缩,哪些不支持
 
所以看看是否可以在Events处理业务的时候获取GET,或者能在 start_gateway.php 获取 client_id 也可以,谢谢

阅读 1432
3个回答

walkor
  • stephen 2019-07-03

    谢谢,可以获取GET值,但同时在Events.php 的 onWebSocketConnect 方法 设置 $connection->websocketType = Websocket::BINARY_TYPE_ARRAYBUFFER; 用来区分使用文本,还是用压缩数据,似乎就不行了,是不是有其它方法?

walkor

你可以在start_gateway.php里使用$gateway->onWebSocketConnect来设置 $connection->websocketType = Websocket::BINARY_TYPE_ARRAYBUFFER; 。Events.php 没办法设置$connection->websocketType

  • stephen 2019-07-03

    谢谢,那样的话没法兼容压缩版本和普通数据版本了,还有一个方法是客户端连接的时候发个消息使用哪个版本的接口,或者您有更好的建议吗?

  • stephen 2019-07-03

    似乎我说的方法也不行,websocketType是连接建立的时候就要设置的

walkor

$gateway->onWebSocketConnect 里可以设置$_SESSION=1,Events.php里可以读取到这个$_SESSION,可以作为是否压缩的判断

  • stephen 2019-07-03

    好,我想办法生成一个唯一值来区分吧,谢谢