if(isset($connection->uid)) {
print_r(111);
$connection->uid = $data->uid;
$this->worker->uidConnections[$connection->uid] = $connection;
}
這個(gè)isset 無法生效 就是判斷這個(gè)是否已經(jīng)設(shè)置 一直都是未設(shè)置
技術(shù)不行直接用 GatewayWorker 就好,何必給自己找麻煩呢.
if(isset($connection->uid)) {//這里是設(shè)置了uid 才執(zhí)行里面代碼,問題你賦值是在里面賦值的,那怎么可能會(huì)執(zhí)行到里面代碼呢,執(zhí)行不到不就是一直賦不了值嗎
}
能不能實(shí)現(xiàn)看的是你php水平,而不是GatewayWorker,他已經(jīng)給你封裝好了單發(fā),群發(fā)接口,而你的一對(duì)多我不太清楚你的實(shí)際需求,但你要是能用workerman實(shí)現(xiàn),那肯定可以用GatewayWorker更方便的實(shí)現(xiàn).
至于用workerman實(shí)現(xiàn)的話,你需要考慮的不僅僅是$connection->send() 發(fā)送過去就好了,除非說你就做一個(gè)單進(jìn)程的簡單聊天系統(tǒng).不然你繞不過去多進(jìn)程跟分布式部署它們之間的通訊,這對(duì)于你這種對(duì)多進(jìn)程沒什么概念的來說,你把它們寫出來的時(shí)間足夠你用GatewayWorker把項(xiàng)目寫出來了.
GatewayWorker文檔就是最好的實(shí)例. 估計(jì)沒誰那么閑真的會(huì)來手把手教你的. 又不是收了你學(xué)費(fèi), 好好看看GatewayWorker文檔就行了,多看多寫幾遍就會(huì)了.