const { Client } = require("../Client.js"); let {randomUUID} = require("crypto"); let {addService,addListener} = require("../WebSocket.js"); const { Room } = require("./Room.js"); let term = require("terminal-kit").terminal; /* Peer to peer veri aktarımı - Kişiden kişiye direkt veri aktarımı - Kişiler arası tünelleme / Kişiler arası özel protokol - Oda katılımcıları içerisinde veri aktarımı - Oda katılımcıları arasında belli kişilere veri aktarımı */ addService(({ client, end, global, message, next, response }) => { let {type} = message; switch(type) { case "pack/to":{ let {to,pack,handshake} = message; if(Client.clients.has(to)) { let otherPeer = Client.clients.get(to); if(otherPeer.requiredPair && !otherPeer.pairs.has(to)) { return handshake && end({ type: 'fail' }) } otherPeer.send([{ from: client.id, pack: pack }, 'pack']); handshake && end({ type: 'success' }) }else{ handshake && end({ type: 'fail' }) } break; } case "pack/room":{ let {to,pack, handshake} = message; if(Room.rooms.has(to)) { if(!client.rooms.has(to)) { return handshake && end({ type: 'fail' }) }; Room.rooms.get(to).send([{ from: client.id, pack: pack }, 'pack']); handshake && end({ type: 'success' }) }else{ handshake && end({ type: 'fail' }) } break; } default:{ next(); } }; });