加密的消息内容, * $ip=>发送消息的服务器IP */ public function check_right($msg,$ip){ if(empty($msg)){ return false; } if(!in_array($ip,SYS_SERVER_IP)){ return false; } $msg_arr = get_login_token($msg); if( !empty($msg_arr) && !empty($msg_arr['uid']) && !empty($msg_arr['a']) && !empty($msg_arr['m']) && !empty($msg_arr['do_a']) && !empty($msg_arr['d']) ){ return $msg_arr; }else{ return false; } } //把需要发送的消息加入消息队列 /* $server=>服务器 $data=>array( 't'=>生成消息的时间, 'uid'=>用户的UID, 'a'=>要执行的动作, 'm'=>要执行的模块, 'd'=>相关的数据(数组) ) */ public function do_push_act($server,$data){ $myredis = new myredis(); //判断一下这个用户是不是在这个服务器建立了长连接 $tmp_fd = $server->get_user_by_uid($data['uid']); if(!empty($tmp_fd)){ return set_reids_push($myredis,USER_INFO_LIST,$data); }else{ return false; } } //即时执行某个操作 /* $server=>服务器 $data=>array( 't'=>生成消息的时间, 'uid'=>用户的UID, 'a'=>要执行的动作, 'm'=>要执行的模块, 'd'=>相关的数据(数组) ) */ public function do_act($server,$data){ //判断一下这个用户是不是在这个服务器建立了长连接 $tmp_fd = $server->get_user_by_uid($data['uid']); if(!empty($tmp_fd) || $data['uid']==1){ //如果有合法的参数,则执行请求的操作 if(!empty($data) && isset($data["a"]) && isset($data["m"]) && isset($data["d"]) ) { //判断两个要执行的内容是否正常 if (!preg_match("/^[a-zA-Z0-9_]+$/", $data["a"]) || !preg_match("/^[a-zA-Z0-9_]+$/", $data["m"])) { $server->_echo_log("要执行的方法里只能包含字母、数字、下画线\r\n"); return false; } //判断是否有这个类 if (!class_exists($data['m'])) { $server->_echo_log(__FILE__ . "找不到对应的类: " . $data['m'] . ":" . __LINE__); return false; } $data['fd'] = $tmp_fd['fd']; $tmp_task_id = $server->server->task($data); $server->_echo_log("ajax进行task任务:".$tmp_task_id); return true; } } return false; } }