Handleshake
This commit is contained in:
parent
2bee72f37d
commit
8966601f14
|
@ -361,6 +361,126 @@ addService(({
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'accept/invite-room':{
|
||||||
|
let {roomId, clientId} = message;
|
||||||
|
// Odanın varlığının kontrolü
|
||||||
|
if(!Room.rooms.has(roomId))
|
||||||
|
{
|
||||||
|
end({
|
||||||
|
status : "fail",
|
||||||
|
message : "NOT-FOUND-ROOM"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
let room = Room.rooms.get(roomId);
|
||||||
|
|
||||||
|
// erişim kontrolü
|
||||||
|
if(!client.rooms.has(room.id))
|
||||||
|
{
|
||||||
|
return end({
|
||||||
|
status : "fail",
|
||||||
|
message : "FORBIDDEN-INVITE-ACTIONS"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Odaya katılma şeklinin doğruluğu
|
||||||
|
if(room.joinType == 'invite')
|
||||||
|
{
|
||||||
|
return end({
|
||||||
|
status : "fail",
|
||||||
|
message : "INVALID-DATA"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
// Odaya katılma talebinin doğruluğu
|
||||||
|
if(!room.waitingInvited.includes(clientId))
|
||||||
|
{
|
||||||
|
return end({
|
||||||
|
status : "fail",
|
||||||
|
message : "NO-WAITING-INVITED"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
// Odaya katılan kişinin varlığı
|
||||||
|
if(!Client.clients.has(clientId))
|
||||||
|
{
|
||||||
|
return end({
|
||||||
|
status : "fail",
|
||||||
|
message : "NO-CLIENT"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
// Odaya kişiyi kabul etme
|
||||||
|
let JoinClient = Client.clients.get(clientId)
|
||||||
|
|
||||||
|
room.join(JoinClient);
|
||||||
|
|
||||||
|
JoinClient.send([{
|
||||||
|
status:"accepted"
|
||||||
|
},'room/invite/status']);
|
||||||
|
|
||||||
|
return end({
|
||||||
|
status : "success"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
case 'reject/invite-room':{
|
||||||
|
let {roomId, clientId} = message;
|
||||||
|
// Odanın varlığının kontrolü
|
||||||
|
if(!Room.rooms.has(roomId))
|
||||||
|
{
|
||||||
|
end({
|
||||||
|
status : "fail",
|
||||||
|
message : "NOT-FOUND-ROOM"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
let room = Room.rooms.get(roomId);
|
||||||
|
|
||||||
|
// erişim kontrolü
|
||||||
|
if(!client.rooms.has(room.id))
|
||||||
|
{
|
||||||
|
return end({
|
||||||
|
status : "fail",
|
||||||
|
message : "FORBIDDEN-INVITE-ACTIONS"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Odaya katılma şeklinin doğruluğu
|
||||||
|
if(room.joinType == 'invite')
|
||||||
|
{
|
||||||
|
return end({
|
||||||
|
status : "fail",
|
||||||
|
message : "INVALID-DATA"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
// Odaya katılma talebinin doğruluğu
|
||||||
|
if(!room.waitingInvited.includes(clientId))
|
||||||
|
{
|
||||||
|
return end({
|
||||||
|
status : "fail",
|
||||||
|
message : "NO-WAITING-INVITED"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
// Odaya katılan kişinin varlığı
|
||||||
|
if(!Client.clients.has(clientId))
|
||||||
|
{
|
||||||
|
return end({
|
||||||
|
status : "fail",
|
||||||
|
message : "NO-CLIENT"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
// Odaya davet edilen kişiyi reddetme
|
||||||
|
let JoinClient = Client.clients.get(clientId)
|
||||||
|
|
||||||
|
room.waitingInvited = room.waitingInvited.filter(e => e != clientId);
|
||||||
|
|
||||||
|
room.send([{id:clientId,roomId:room.id},'room/invite/status'])
|
||||||
|
|
||||||
|
JoinClient.send([{
|
||||||
|
status:"rejected"
|
||||||
|
},'room/invite/status']);
|
||||||
|
|
||||||
|
return end({
|
||||||
|
status : "success"
|
||||||
|
});
|
||||||
|
}
|
||||||
default:{
|
default:{
|
||||||
next();
|
next();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue