鍍金池/ 問答/PHP/ swoole如何主動給客戶端推送消息?

swoole如何主動給客戶端推送消息?

在swoole 的回調(diào)函數(shù)中 比如onOpen onMessage 里面會有 $serv 但是如果在其他地方想給客戶端推送消息的時候咋使用呢?

之前是使用$serv->push($fd,$data);

但是如果在其他地方的話serv是不存在的 如何解決這個呢????

回答
編輯回答
青檸

簡單點來說:“其他地方” -》 連接到server -》 $serv->push($fd,$data);
詳細點來說:在其他php-fpm的程序里,你需要tcp連接到通過swoole啟動的服務(wù),然后找到你要發(fā)送的用戶($fd),然后再發(fā)送

2018年1月19日 19:19
編輯回答
你的瞳

謝邀,你可以試試在有$serv的服務(wù)上監(jiān)聽一個事件,然后在其他地方調(diào)用這個事件,$serv接收到監(jiān)聽開始處理邏輯

2017年12月11日 11:12
編輯回答
吢丕

首先我不知道你說的其他地方在哪兒,具體來說就是代碼的組織方式。這個,沒有代碼我只能瞎猜。

你可能是要在controller中來使用這個server,但是controller可能是被swoole文件通過call_user_func這樣的方式調(diào)用的。

這樣的話,你可以通過傳參數(shù)的方式,把serv直接當(dāng)參數(shù)傳給業(yè)務(wù)代碼;
然后,除此之外,你還可以試試global;

2018年8月12日 23:33