Commit 39d7cbf2 by 冷斌

update

parent 4333550e
......@@ -52,25 +52,25 @@ var io = socketio.listen(server,{
//setInterval(function(){
//global.gc();
////console.log('GC done')
//}, 1000*30);
//}, 1000*30);
io.on('connection', function(socket) {
////console.log('连接成功');
//numscount++;
var interval;
//进入房间
socket.on('conn', function(data) {
if(!data || !data.token){
return !1;
}
userid=data.uid;
old_socket = sockets[userid];
if (old_socket && old_socket != socket) {
if(data.uid== data.roomnum && data.stream==old_socket.stream){
old_socket.reusing = 1;
////console.log("重用");
......@@ -80,7 +80,7 @@ io.on('connection', function(socket) {
}
old_socket.disconnect()
}
clientRedis.get(data.token,function(error,res){
if(error){
return;
......@@ -88,12 +88,12 @@ io.on('connection', function(socket) {
////console.log("[获取token失败]"+data.uid);
}else{
if(res != null){
var userInfo = evalJson(res);
if(userInfo['id'] == data.uid ){
////console.log("[初始化验证成功]--"+data.uid+"---"+data.roomnum+'---'+data.stream);
//获取验证token
socket.token = data.token;
socket.token = data.token;
socket.roomnum = data.roomnum;
socket.stream = data.stream;
socket.nicename = userInfo['user_nicename'];
......@@ -103,11 +103,11 @@ io.on('connection', function(socket) {
socket.usertype = parseInt(userInfo['usertype']);
socket.uid = data.uid;
socket.reusing = 0;
socket.join(data.roomnum);
sockets[userid] = socket;
socket.emit('conn',['ok']);
/* 重连时 处理PK */
if(socket.roomnum==socket.uid){
clientRedis.hget('LiveConnect',socket.uid,function(error,res){
......@@ -117,7 +117,7 @@ io.on('connection', function(socket) {
if(res){
var pkuid=res;
LiveConnect[socket.uid]=pkuid;
clientRedis.hget('LivePK',socket.uid,function(error,res){
if(error){
return;
......@@ -126,7 +126,7 @@ io.on('connection', function(socket) {
LivePK[socket.uid]=pkuid;
}
})
clientRedis.hget('LivePK_gift',socket.uid,function(error,res){
if(error){
return;
......@@ -138,7 +138,7 @@ io.on('connection', function(socket) {
}
})
}
if( socket.roomnum!=socket.uid && socket.uid >0 ){
/* 处理有时 无座驾信息会崩溃的问题 */
var car_id='0';
......@@ -160,7 +160,7 @@ io.on('connection', function(socket) {
car_words=carinfo['words'];
}
}
var data_obj={
"msg":[
{
......@@ -189,7 +189,7 @@ io.on('connection', function(socket) {
};
process_msg(io,socket.roomnum,JSON.stringify(data_obj));
if(socket.stream){
clientRedis.zadd('user_'+socket.stream,socket.sign,userInfo['id']);
clientRedis.zadd('user_'+socket.stream,socket.sign,userInfo['id']);
}
}
sendSystemMsg(socket,"直播内容包含任何低俗、暴露和涉黄内容,账号会被封禁;安全部门会24小时巡查哦~");
......@@ -199,24 +199,24 @@ io.on('connection', function(socket) {
}
}
}
socket.emit('conn',['no']);
});
});
socket.on('broadcast',function(data){
////console.log(data);
if(socket.token != undefined){
var dataObj = typeof data == 'object'?data:evalJson(data);
var msg = dataObj['msg'][0];
var msg = dataObj['msg'][0];
var token = dataObj['token'];
var method = msg['_method_'];
var action = msg['action'];
var data_str = typeof data == 'object'?JSON.stringify(data):data;
switch(method){
case 'SendMsg':{ //聊天
case 'SendMsg':{ //聊天
clientRedis.hget( "super",socket.uid,function(error,res){
if(error) return;
if(res != null){
......@@ -242,9 +242,9 @@ io.on('connection', function(socket) {
socket.emit('broadcastingListen',[JSON.stringify(newData)]);
}else{
process_msg(io,socket.roomnum,data_str);
}
}
});
}
}
});
break;
}
......@@ -265,24 +265,24 @@ io.on('connection', function(socket) {
var total=Number(resObj.totalcoin);
LivePK_gift[socket.roomnum]+=total;
clientRedis.hincrby('LivePK_gift',socket.roomnum,total);
pkuid1=''+socket.roomnum;
pkuid2=''+pkuid;
pktotal1=''+LivePK_gift[socket.roomnum];
pktotal2=''+LivePK_gift[pkuid];
}
dataObj['msg'][0]['ifpk']=ifpk;
dataObj['msg'][0]['pkuid1']=pkuid1;
dataObj['msg'][0]['pkuid2']=pkuid2;
dataObj['msg'][0]['pktotal1']=pktotal1;
dataObj['msg'][0]['pktotal2']=pktotal2;
io.sockets.in(socket.roomnum).emit('broadcastingListen',[JSON.stringify(dataObj)]);
if(pkuid>0){
io.sockets.in(pkuid).emit('broadcastingListen',[JSON.stringify(dataObj)]);
}
/* 幸运中奖 */
if(resObj.isluck==1 && resObj.isluckall==1 ){
var data_luck={
......@@ -305,7 +305,7 @@ io.on('connection', function(socket) {
io.emit('broadcastingListen',[JSON.stringify(data_luck)]);
}
/* 幸运中奖 */
/* 奖池升级 */
if(resObj.isup==1){
var data_up={
......@@ -323,7 +323,7 @@ io.on('connection', function(socket) {
io.emit('broadcastingListen',[JSON.stringify(data_up)]);
}
/* 奖池升级 */
/* 奖池中奖 */
if(resObj.iswin==1){
var data_win={
......@@ -342,7 +342,7 @@ io.on('connection', function(socket) {
"retmsg":"OK"
};
io.emit('broadcastingListen',[JSON.stringify(data_win)]);
var data_up={
"msg":[
{
......@@ -358,7 +358,7 @@ io.on('connection', function(socket) {
io.emit('broadcastingListen',[JSON.stringify(data_up)]);
}
/* 奖池中奖 */
clientRedis.del(gifToken);
}
});
......@@ -373,7 +373,7 @@ io.on('connection', function(socket) {
var data_str=JSON.stringify(dataObj);
process_msg(io,socket.roomnum,data_str);
clientRedis.del(barragetoken);
}
}
});
break;
}
......@@ -388,12 +388,12 @@ io.on('connection', function(socket) {
return !1;
}
var res_j=JSON.parse(res);
if( socket.uid==res_j['uid'] || socket.uid==socket.roomnum ){
clientRedis.hdel('ShowVideo',socket.roomnum);
process_msg(io,socket.roomnum,data_str);
}
});
process_msg(io,socket.roomnum,data_str);
}
});
}else{
process_msg(io,socket.roomnum,data_str);
}
......@@ -429,8 +429,8 @@ io.on('connection', function(socket) {
clientRedis.hget( "super",socket.uid,function(error,res){
if(error) return;
if(res != null){
process_msg(io,socket.roomnum,'stopplay');
}
process_msg(io,socket.roomnum,'stopplay');
}
});
break;
}
......@@ -439,13 +439,13 @@ io.on('connection', function(socket) {
process_msg(io,socket.roomnum,data_str);
}
break;
}
}
case 'setAdmin' :{//设置/取消管理员
if(socket.usertype == 50 ){
process_msg(io,socket.roomnum,data_str);
}
break;
}
}
case 'StartEndLive':{
if(socket.usertype == 50 ){
socket.broadcast.to(socket.roomnum).emit('broadcastingListen',[data_str]);
......@@ -493,23 +493,23 @@ io.on('connection', function(socket) {
LiveConnect_pull[socket.uid]=pkpull;
//console.log('LiveConnect_pull--'+socket.uid+'-----'+pkpull);
clientRedis.hset('LiveConnect_pull',socket.uid,pkpull);
/* 更新 连麦关系 */
LiveConnect[socket.uid]=pkuid;
LiveConnect[pkuid]=socket.uid;
//console.log('LiveConnect');
//console.log(socket.uid)
//console.log(pkuid);
clientRedis.hset('LiveConnect',socket.uid,pkuid);
clientRedis.hset('LiveConnect',pkuid,socket.uid);
/* 更新数据库 */
var sign_data={uid:socket.uid,pkuid:pkuid,type:1};
var sign=setSign(sign_data);
request(config['WEBADDRESS']+"?service=Livepk.changeLive&uid="+socket.uid + "&pkuid=" + pkuid+ "&type=1&sign=" +sign,function(error, response, body){});
/* 发送连麦成功信息 */
/* 当前房间 */
var data_obj={
......@@ -527,7 +527,7 @@ io.on('connection', function(socket) {
"retcode":"000000",
"retmsg":"OK"
};
process_msg(io,socket.roomnum,JSON.stringify(data_obj));
/* 对方房间 */
var data_obj_pk={
......@@ -546,7 +546,7 @@ io.on('connection', function(socket) {
"retmsg":"OK"
};
process_msg(io,pkuid,JSON.stringify(data_obj_pk));
}else if(action=='5'){
/* 清除连麦信息 */
endLiveConnect(io,socket.uid);
......@@ -555,7 +555,7 @@ io.on('connection', function(socket) {
if(socket_pkuid){
socket_pkuid.emit('broadcastingListen',[data_str]);
}
}
break;
}
......@@ -571,17 +571,17 @@ io.on('connection', function(socket) {
/* 更新PK状态 */
LivePK[socket.uid]=pkuid;
LivePK[pkuid]=socket.uid;
LivePK_gift[socket.uid]=0;
LivePK_gift[pkuid]=0;
//console.log('LivePK');
//console.log(socket.uid);
//console.log(pkuid);
clientRedis.hset('LivePK',socket.uid,pkuid);
clientRedis.hset('LivePK',pkuid,socket.uid);
clientRedis.hset('LivePK_gift',socket.uid,0);
clientRedis.hset('LivePK_gift',pkuid,0);
......@@ -601,7 +601,7 @@ io.on('connection', function(socket) {
"retcode":"000000",
"retmsg":"OK"
};
process_msg(io,socket.roomnum,JSON.stringify(data_obj));
/* 对方房间 */
var data_obj_pk={
......@@ -619,22 +619,22 @@ io.on('connection', function(socket) {
"retmsg":"OK"
};
process_msg(io,pkuid,JSON.stringify(data_obj_pk));
clearTimeout(LivePK_timer[socket.uid]);
LivePK_timer[socket.uid]=null;
var time=Math.floor( (new Date()).getTime()/1000);
var time=Math.floor( (new Date()).getTime()/1000);
//console.log('LivePK_timer_'+socket.uid+'___'+pkuid);
//console.log('LivePK_timer');
//console.log(time);
clientRedis.hset('LivePK_timer',socket.uid,time);
LivePK_timer[socket.uid]=setTimeout(function() {//定时发送结果
endLivePk(io,socket.uid,0);
}, 5*60*1000);
}, 7*60*1000);
//5*60*1000
}else if(action=='5'){
/* 清除PK信息 */
endLivePk(io,socket.uid,1);
......@@ -690,7 +690,7 @@ io.on('connection', function(socket) {
if(error) return;
////console.log(body);
var res = evalJson(body);
if( response.statusCode == 200 && res.data.code == 0){
var resObj = res.data.info;
dataObj['msg'][0]['ct'] = resObj;
......@@ -738,7 +738,7 @@ io.on('connection', function(socket) {
request(config['WEBADDRESS']+"?service=Game.endGame&liveuid="+socket.uid + "&token=" + socket.token+ "&gameid=" + gameid+"&type=1",function(error, response, body){
if(error) return;
var res = evalJson(body);
if( response.statusCode == 200 && res.data.code == 0){
var resObj = res.data.info;
dataObj['msg'][0]['ct'] = resObj;
......@@ -786,12 +786,12 @@ io.on('connection', function(socket) {
});
}
}
}
});
socket.on('superadminaction',function(data){
if(data['token'] == config['TOKEN']){
io.sockets.in(data['roomnum']).emit("broadcastingListen", ['stopplay']);
......@@ -815,18 +815,18 @@ io.on('connection', function(socket) {
io.emit('broadcastingListen',[JSON.stringify(data_obj)]);
}
});
//资源释放
socket.on('disconnect', function() {
/* numscount--;
socket.on('disconnect', function() {
/* numscount--;
if(numscount<0){
numscount=0;
} */
if(socket.roomnum ==null || socket.token==null || socket.uid <=0){
return !1;
}
d.run(function() {
/* 用户连麦 */
clientRedis.hget('ShowVideo',socket.roomnum,function(error,res){
......@@ -837,7 +837,7 @@ io.on('connection', function(socket) {
return !1;
}
var res_j=JSON.parse(res);
if( socket.uid == res_j['uid'] || socket.uid == socket.roomnum ){
clientRedis.hdel('ShowVideo',socket.roomnum);
var data_obj={
......@@ -853,22 +853,22 @@ io.on('connection', function(socket) {
"retcode":"000000",
"retmsg":"OK"
};
process_msg(io,socket.roomnum,JSON.stringify(data_obj));
}
process_msg(io,socket.roomnum,JSON.stringify(data_obj));
}
});
if(socket.roomnum==socket.uid){
/* 主播 */
/* 主播 */
if(socket.reusing==0){
request(config['WEBADDRESS']+"?service=Live.stopRoom&uid="+socket.uid + "&token=" + socket.token+ "&type=1&stream=" + socket.stream,function(error, response, body){
console.log(body);
});
var data_obj={
"retmsg":"ok",
"retcode":"000000",
......@@ -885,9 +885,9 @@ io.on('connection', function(socket) {
endLiveConnect(io,socket.uid);
}
}else{
/* 观众 */
clientRedis.zrem('user_'+socket.stream,socket.uid,function(error,res){
......@@ -912,14 +912,14 @@ io.on('connection', function(socket) {
"retcode":"000000",
"retmsg":"OK"
};
process_msg(io,socket.roomnum,JSON.stringify(data_obj));
process_msg(io,socket.roomnum,JSON.stringify(data_obj));
}
});
}
////console.log(socket.roomnum+"==="+socket.token+"===="+socket.uid+"======"+socket.stream);
socket.leave(socket.roomnum);
delete io.sockets.sockets[socket.id];
sockets[socket.uid] = null;
......@@ -945,7 +945,7 @@ function sendSystemMsg(socket,msg){
"retmsg":"OK"
};
socket.emit('broadcastingListen',[JSON.stringify(data_obj)]);
}
function evalJson(data){
return eval("("+data+")");
......@@ -973,50 +973,50 @@ function send_msg(io,roomnum){
/* 主播连麦结束处理 */
function endLiveConnect(io,uid){
if(LivePK_timer[uid]){
clearTimeout(LivePK_timer[uid]);
LivePK_timer[uid]=null;
}
var pkuid=LiveConnect[uid];
if(!pkuid || pkuid<=0){
pkuid=0;
}
/* 更新数据库 */
var sign_data={uid:uid,pkuid:pkuid,type:0};
var sign=setSign(sign_data);
request(config['WEBADDRESS']+"?service=Livepk.changeLive&uid="+uid + "&pkuid=" + pkuid+ "&type=0&sign=" +sign,function(error, response, body){});
LiveConnect[uid]=0;
LiveConnect[pkuid]=0;
// console.log('endLiveConnect');
// console.log(uid);
// console.log(pkuid);
clientRedis.hset('LiveConnect',uid,0);
clientRedis.hset('LiveConnect',pkuid,0);
if(LivePK_timer[pkuid]){
clearTimeout(LivePK_timer[pkuid]);
LivePK_timer[pkuid]=null;
}
/* 清除PK信息 */
LivePK[uid]=0;
LivePK[pkuid]=0;
LivePK_gift[uid]=0;
LivePK_gift[pkuid]=0;
clientRedis.hset('LivePK',uid,0);
clientRedis.hset('LivePK',pkuid,0);
clientRedis.hset('LivePK_gift',uid,0);
clientRedis.hset('LivePK_gift',pkuid,0);
var data_obj={
"msg":[
{
......@@ -1030,21 +1030,21 @@ function endLiveConnect(io,uid){
"retcode":"000000",
"retmsg":"OK"
};
process_msg(io,uid,JSON.stringify(data_obj));
process_msg(io,pkuid,JSON.stringify(data_obj));
process_msg(io,pkuid,JSON.stringify(data_obj));
}
/* PK结束处理 */
function endLivePk(io,uid,type){
if(LivePK_timer[uid]){
clearTimeout(LivePK_timer[uid]);
LivePK_timer[uid]=null;
}
clientRedis.hdel('LivePK_timer',uid);
var win_uid=0;
var pkuid=LivePK[uid];
if(!pkuid || pkuid<=0){
......@@ -1052,12 +1052,12 @@ function endLivePk(io,uid,type){
}
var end_gift_uid=LivePK_gift[uid];
var end_gift_pkuid=LivePK_gift[pkuid];
if(LivePK_timer[pkuid]){
clearTimeout(LivePK_timer[pkuid]);
LivePK_timer[pkuid]=null;
}
if(type==1){
win_uid=pkuid;
}else if(end_gift_uid > end_gift_pkuid){
......@@ -1065,14 +1065,14 @@ function endLivePk(io,uid,type){
}else if(end_gift_uid < end_gift_pkuid){
win_uid=pkuid;
}
/* 清除PK信息 */
LivePK[uid]=0;
LivePK[pkuid]=0;
LivePK_gift[uid]=0;
LivePK_gift[pkuid]=0;
// console.log('endLivePk');
// console.log(type);
// console.log(uid);
......@@ -1081,13 +1081,13 @@ function endLivePk(io,uid,type){
// console.log(time);
// console.log(end_gift_uid);
// console.log(end_gift_pkuid);
clientRedis.hset('LivePK',uid,0);
clientRedis.hset('LivePK',pkuid,0);
clientRedis.hset('LivePK_gift',uid,0);
clientRedis.hset('LivePK_gift',pkuid,0);
var data_obj={
"msg":[
{
......@@ -1102,7 +1102,7 @@ function endLivePk(io,uid,type){
"retcode":"000000",
"retmsg":"OK"
};
process_msg(io,uid,JSON.stringify(data_obj));
process_msg(io,pkuid,JSON.stringify(data_obj));
}
......@@ -1126,7 +1126,7 @@ function setSign(obj) {//排序的函数
str+=newkey[i]+'='+obj[newkey[i]]+'&';
}
str+=config['sign_key'];
var sign=md5(str);
return sign;
}
......@@ -432,7 +432,7 @@ class Model_Live extends PhalApi_Model_NotORM {
$ids= DI()->notorm->users_zombie
->select('uid')
->where("uid not in ({$where})")
->limit(0,10)
->limit(0,4)
->fetchAll();
$info=array();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment