如何能在Events.php中获取问号后面的参数,目前获取得到的是空的$_GET。或者可以修改源码实现获取?
之前问过群主,Events.php中获取不到$_GET
可否修改源码自己加上?我看到gateway中是可以获取的
改源码肯定是能做到的,关键是看个人能力了
$_SERVER 里应该有你想要的东西。
可以参考 \Workerman\Protocols\Websocket::parseHttpHeader() 的源代码。
我通过gateway放到cache中传递过去了,parseHttpHeader在源码中较深,实现想到不有什么方法可传递
不过好像是异步的,有时设置的cache没收到
扩展 \GatewayWorker\Gateway,改写 onWorkerConnect,在里面调用 sendToWorker() 给 BusinessWorker 发消息……
在start_gateway.php加上下面的代码
$gateway->onConnect = function($connection) { $connection->onWebSocketConnect = function($connection , $http_header) { $_SESSION = $_GET; }; };
代码加完后需要重启GatewayWorker。
这样就可以在Events.php中onMessage里通过$_SESSION得到之前的GET数据了。
类似手册http://doc.workerman.net/546067 GatewayWorker从nginx设置的header里获取客户端ip 这个做法
之前问过群主,Events.php中获取不到$_GET
可否修改源码自己加上?我看到gateway中是可以获取的
改源码肯定是能做到的,关键是看个人能力了
$_SERVER 里应该有你想要的东西。
可以参考 \Workerman\Protocols\Websocket::parseHttpHeader() 的源代码。
我通过gateway放到cache中传递过去了,parseHttpHeader在源码中较深,实现想到不有什么方法可传递
不过好像是异步的,有时设置的cache没收到
扩展 \GatewayWorker\Gateway,改写 onWorkerConnect,在里面调用 sendToWorker() 给 BusinessWorker 发消息……
在start_gateway.php加上下面的代码
代码加完后需要重启GatewayWorker。
这样就可以在Events.php中onMessage里通过$_SESSION得到之前的GET数据了。
类似手册http://doc.workerman.net/546067 GatewayWorker从nginx设置的header里获取客户端ip 这个做法