Handleshake
This commit is contained in:
parent
2bee72f37d
commit
8966601f14
|
@ -361,6 +361,126 @@ addService(({
|
|||
}
|
||||
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:{
|
||||
next();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue