|
@@ -5,6 +5,9 @@ namespace App\Console\Commands;
|
|
|
use Illuminate\Console\Command;
|
|
|
use GatewayWorker\Lib\Gateway;
|
|
|
use Illuminate\Support\Facades\Redis;
|
|
|
+use App\Model\User;
|
|
|
+use App\Model\Room;
|
|
|
+use App\Model\RoomUser;
|
|
|
|
|
|
class recylerobots extends Command
|
|
|
{
|
|
@@ -41,18 +44,24 @@ class recylerobots extends Command
|
|
|
{
|
|
|
//注册地址
|
|
|
Gateway::$registerAddress = '127.0.0.1:1238';
|
|
|
+
|
|
|
while(1){
|
|
|
//获取所有机器人
|
|
|
- $robots = Redis::lrange('online_robot_list', 0, -1);
|
|
|
+ $robots = User::where("is_login", 1)->where("is_robot", 1)->get();
|
|
|
if($robots){
|
|
|
foreach ($robots as $robot) {
|
|
|
- $message['type'] = 'checkrobot';
|
|
|
//检测是否在线
|
|
|
- if(Gateway::isOnline($robot)){
|
|
|
- Gateway::sendToClient($robot, json_encode($message));
|
|
|
+ if(Gateway::isOnline($robot->user_id)){
|
|
|
+ //检测游戏是否结束
|
|
|
+ $has_game = RoomUser::where("user_id", $user_id)->where("state", 1)->count();
|
|
|
+ if(!$has_game){
|
|
|
+ $message['type'] = "game_end";
|
|
|
+ Gateway::sendToUid($robot->user_id, json_encode($message));
|
|
|
+ }
|
|
|
}else{
|
|
|
- Redis::lrem('online_robot_list', 0, $robot);
|
|
|
- Redis::srem('robot_list', $robot);
|
|
|
+ $update_data["is_login"] = 0;
|
|
|
+ $update_data["client_id"] = '';
|
|
|
+ User::where("user_id", $robot->user_id)->update($update_data);
|
|
|
}
|
|
|
}
|
|
|
}
|