request->request('params_from'); // 客户端 if($params_from == "wxmin") { Gateway::$registerAddress = "127.0.0.1:1239"; } else { Gateway::$registerAddress = "127.0.0.1:1238"; } } public function test() { $client_id = $this->request->request('client_id'); // 客户端ID print_r(Gateway::getAllUidCount());exit; } /** * 绑定用户ID */ public function bind() { $client_id = $this->request->request('client_id'); // 客户端ID if(!$client_id) { $this->error("请传入客户端ID"); } $user_id = $this->auth->id; // 先判断当前用户是否在线 // if(Gateway::isUidOnline($user_id)) { // // 发送一个踢下线的信息 // $tcpArr = []; // $tcpArr["type"] = "outLogin"; // $tcpArr['data'] = [ // 'user_id' => $user_id // ]; // $outLoginJson = json_encode($tcpArr); // Gateway::sendToUid($user_id,$outLoginJson); // } Gateway::bindUid($client_id, $user_id); // 切换用户在线状态 \app\common\model\User::update(["is_online"=>1],["id"=>$user_id]); $this->success("绑定成功!"); } //============================workerman 计时器==========================// /** * 服务器定时器:判断用户是否在线 */ public function userIsOnline() { // $userlist = \app\common\model\User::where(["is_online" =>1,"status"=>"normal"])->select(); // if($userlist) { // foreach($userlist as $k =>$v){ // if(!Gateway::isUidOnline($v["id"])) { // \app\common\model\User::update(["is_online"=>0],["id"=>$v["id"]]); // \app\common\model\User::update(["is_live"=>0],["id"=>$v["id"]]); // } // } // } } /** * 所有房间人数redis 魅力值清零 */ public function clearCharm() { // 获取所有房间ID信息 // $party_id = \app\common\model\Party::where(["status"=>1])->column("id"); // if($party_id) { // $redis = new Redis(); // $redisconfig = config("redis"); // $redis->connect($redisconfig["host"], $redisconfig["port"]); /*if ($redisconfig['redis_pwd']) { $redis->auth($redisconfig['redis_pwd']); } if($redisconfig['redis_selectdb'] > 0){ $redis->select($redisconfig['redis_selectdb']); }*/ // foreach($party_id as $v) { // $redis->del("hourCharm_".$v); // } // } // // 清零之后发送消息 // $tcpArr = []; // $tcpArr['type'] = "clearAllCharm"; // $tcpArr['data'] = [ // 'clear' => 1 // ]; // $tcpJson = json_encode($tcpArr); // Gateway::sendToAll($tcpJson); } // 注意除了不支持sendToCurrentClient和closeCurrentClient方法 // Gateway::sendToAll($data); // Gateway::sendToClient($client_id, $data); // Gateway::closeClient($client_id); // Gateway::isOnline($client_id); // Gateway::bindUid($client_id, $uid); // Gateway::isUidOnline($uid); // Gateway::getClientIdByUid($uid); // Gateway::unbindUid($client_id, $uid); // Gateway::sendToUid($uid, $data); // Gateway::joinGroup($client_id, $group); // Gateway::sendToGroup($group, $data); // Gateway::leaveGroup($client_id, $group); // Gateway::getClientCountByGroup($group); // Gateway::getClientSessionsByGroup($group); // Gateway::getAllClientCount(); // Gateway::getAllClientSessions(); // Gateway::setSession($client_id, $session); // Gateway::updateSession($client_id, $session); // Gateway::getSession($client_id); }