由于歷史原因,我需要在Gateway/BusinessWorker模式中提供http協(xié)議訪問(應(yīng)該說是類似于http的請(qǐng)求接口),現(xiàn)有workerman雖然是支持的,但是在BusinessWorker中卻將$_SERVER全局變量重置了, 這樣導(dǎo)致http協(xié)議解析到數(shù)據(jù)丟失了, 最后Event雖然可以得到消息的body,這時(shí)需要解析這個(gè)body。我想問一下,為什么BusinessWorker中要將$_SERVER重置, 而不是繼續(xù)添加需要的數(shù)據(jù),這樣有什么考慮嗎?
BusinessWorker并沒有解析http協(xié)議,即使不重置$_SERVER,$_SERVER也是空的,所以不存在所說的 “$_SERVER全局變量重置, 導(dǎo)致http協(xié)議解析到數(shù)據(jù)丟失” 問題。
Http協(xié)議decode返回值是原始的http協(xié)議數(shù)據(jù),所以Event::onMessage($client_id, $data) 中得到的$data就是http原始數(shù)據(jù)。
我已經(jīng)更改了http協(xié)議decode的返回值為 return array('get'=>$_GET, 'post'=>$_POST, 'cookie'=>$_COOKIE, 'server'=>$_SERVER, 'files'=>$_FILES);
這樣你就可以在Event::onMessage($client_id, $data)的$data中獲取 get/post/cookie....了
請(qǐng)更新下workerman試下