在离线
This commit is contained in:
@@ -11,19 +11,20 @@ use app\common\controller\BaseCom;
|
|||||||
class Xintiao extends BaseCom
|
class Xintiao extends BaseCom
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//房间内保持心跳
|
||||||
public function keep_xintiao()
|
public function keep_room_heartbeat()
|
||||||
{
|
{
|
||||||
|
$room_id = input('room_id');
|
||||||
$user_id = $this->uid;
|
$user_id = $this->uid;
|
||||||
$is_xintiao = db::name('vs_xintiao')->where('user_id' , $user_id)->find();
|
$is_xintiao = db::name('vs_room_heartbeat')->where(['user_id' => $user_id, 'room_id' => $room_id])->find();
|
||||||
if($is_xintiao){
|
if($is_xintiao){
|
||||||
db::name('vs_xintiao')->where('user_id' , $user_id)->update(['updatetime' => time()]);
|
db::name('vs_room_heartbeat')->where('user_id' , $user_id)->update(['updatetime' => time()]);
|
||||||
}else{
|
}else{
|
||||||
db::name('vs_xintiao')->insert([
|
db::name('vs_room_heartbeat')->insert([
|
||||||
'user_id' => $user_id,
|
'user_id' => $user_id,
|
||||||
'createtime' => time(),
|
'createtime' => time(),
|
||||||
'updatetime' => time()
|
'updatetime' => time()
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
return V(1, '成功', null);
|
return V(1, '成功', null);
|
||||||
}
|
}
|
||||||
@@ -33,7 +34,4 @@ class Xintiao extends BaseCom
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -25,57 +25,56 @@ class RoomPan
|
|||||||
$this->blind_box_turntable_gift_send();//盲盒转盘礼物补发
|
$this->blind_box_turntable_gift_send();//盲盒转盘礼物补发
|
||||||
echo "盲盒转盘礼物补发结束 \n";
|
echo "盲盒转盘礼物补发结束 \n";
|
||||||
|
|
||||||
echo "查询用户在线状态:\n";
|
echo "查询用户是否在房间内保持心跳:\n";
|
||||||
$this->online_status();
|
$this->keep_room_heartbeat();
|
||||||
echo "\n";
|
echo "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
//查询在线状态
|
|
||||||
protected function online_status()
|
/*
|
||||||
{
|
* 查询用户是否在房间内保持心跳
|
||||||
$user_list = db::name('vs_xintiao')->select();
|
*/
|
||||||
|
public function keep_room_heartbeat(){
|
||||||
|
$user_list = db::name('vs_room_heartbeat')->select();
|
||||||
if($user_list){
|
if($user_list){
|
||||||
foreach ($user_list as $value){
|
foreach ($user_list as $value){
|
||||||
if(time() - $value['updatetime'] >= 180){//三分钟没有上线
|
$is_online = db::name('vs_room_visitor')
|
||||||
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online');
|
->where(['user_id' => $value['user_id'],'room_id' => $value['room_id']])
|
||||||
if($is_online == 2){
|
->order('id desc')
|
||||||
//在线
|
->field('id,is_online,room_id')
|
||||||
continue;
|
->find();
|
||||||
}
|
if($is_online){//现在 在房间内
|
||||||
//断线
|
if(time() - $value['updatetime'] >= 180){//三分钟没有心跳
|
||||||
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>2]);
|
if($is_online['is_online'] == 2){//之前就是离开
|
||||||
//是否在房间内
|
continue;
|
||||||
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id');
|
}else{//之前就是在线则改为离开
|
||||||
if($room_id){
|
db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>2]);
|
||||||
$text['text'] = '掉线!';
|
$text['text'] = '离开';
|
||||||
$text['user_id'] = $value['user_id'];
|
$text['user_id'] = $value['user_id'];
|
||||||
$text['type'] = 2;
|
$text['type'] = 2;
|
||||||
model('api/Chat')->sendMsg(1058,$room_id,$text);
|
model('api/Chat')->sendMsg(1058,$is_online['room_id'],$text);
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online');
|
|
||||||
if($is_online == 1){
|
|
||||||
//在线
|
|
||||||
continue;
|
|
||||||
}else{
|
}else{
|
||||||
//修改在线状态
|
if($is_online['is_online'] == 1){//之前就是在线
|
||||||
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>1]);
|
continue;
|
||||||
//是否在房间内
|
}else{//之前就是离开则改为在线
|
||||||
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id');
|
db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>1]);
|
||||||
if($room_id){
|
$text['text'] = '回到房间';
|
||||||
$text['text'] = '重新上线!';
|
|
||||||
$text['user_id'] = $value['user_id'];
|
$text['user_id'] = $value['user_id'];
|
||||||
$text['type'] = 1;
|
$text['type'] = 1;
|
||||||
model('api/Chat')->sendMsg(1058,$room_id,$text);
|
model('api/Chat')->sendMsg(1058,$is_online['room_id'],$text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
//删掉
|
||||||
|
db::name('vs_room_heartbeat')->where('id',$value['id'])->delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 盲盒转盘礼物推送补发
|
* 盲盒转盘礼物推送补发
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user