如題。比如說(shuō)不在workerman環(huán)境下,如何根據(jù)client_id,判斷用戶是否在線,并且發(fā)送消息。
直接使用GatewayClient即可。
http://workerman.net/gatewaydoc/advanced/push.html
以下回復(fù)是針對(duì)老版本GatewayWorker的,已經(jīng)過(guò)期了,不再適用當(dāng)前版本。
其實(shí)比較簡(jiǎn)單,就是要引用到Lib/Gateway.php這個(gè)文件
如果兩個(gè)項(xiàng)目在同一臺(tái)服務(wù)器上
直接引用require /your/path/workerman-xxx/applications/XXX/Lib/Gateway.php 就可以直接調(diào)用了
如果是不同機(jī)器上調(diào)用workerman的接口
也很簡(jiǎn)單,需要以下步驟
以applications/Demo為例,你只需要將applications/Demo的代碼拷貝到你的新項(xiàng)目中任意目錄,然后引用新項(xiàng)目中Demo/Lib/Gateway.php即可。
注意:不同服務(wù)器上遠(yuǎn)程調(diào)用workerman接口需要開啟memcache,在 Config/Store.php 中配置public static $driver = self::DRIVER_MC,并配置memcache服務(wù)端的ip和端口
public static $gateway = array(
'192.168.0.1:11211',
);
// 如果還有其它的話
// public static $xxx=array(...
外部項(xiàng)目引用Lib\Gateway.php后就可以直接像下面這樣調(diào)用
use \Lib\Gateway;
Gateway::sendToClient($client_id, $message);
Gateway::sendToAll($message);
Gateway::isOnline($client_id);
Gateway....
注意 新項(xiàng)目中的Demo/Config 下的配置文件與你的workerman下的applications/Demo/Config要一致
直接使用GatewayClient即可。
見手冊(cè)http://workerman.net/gatewaydoc/advanced/push.html
代碼類似:
require_once '/your/path/GatewayClient/Gateway.php';
Gateway::$registerAddress = 'xxx.xxx.xxx.xxx:xx';
Gateway::isOnline($client_id);
Gateway::sendToClient($client_id, $msg);
以上代碼可以在任意項(xiàng)目中運(yùn)行