From e0f08b7c807bcf42adca77ea006eaec3d3fbf2f9 Mon Sep 17 00:00:00 2001 From: saqut Date: Tue, 19 Mar 2024 01:03:38 +0300 Subject: [PATCH] =?UTF-8?q?Farkl=C4=B1=20Bir=20E=C5=9Fe=20Ba=C4=9Flanma=20?= =?UTF-8?q?Ekle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Farkl%C4%B1-Bir-E%C5%9Fe-Ba%C4%9Flanma.md | 62 +++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Farkl%C4%B1-Bir-E%C5%9Fe-Ba%C4%9Flanma.md diff --git a/Farkl%C4%B1-Bir-E%C5%9Fe-Ba%C4%9Flanma.md b/Farkl%C4%B1-Bir-E%C5%9Fe-Ba%C4%9Flanma.md new file mode 100644 index 0000000..e1a3588 --- /dev/null +++ b/Farkl%C4%B1-Bir-E%C5%9Fe-Ba%C4%9Flanma.md @@ -0,0 +1,62 @@ +Burdaki mantık iki kullanıcının birbirlerini onaylayarak istek-onay şeklinde eşleştirdikten sonra sanal bir veri tünel oluşturmaktır. +`isReachable` peer'in online olup olmadığını sunucuya sorar, `requestPair` ile eşleşme isteği iletirsiniz ve kendisine gelen isteği +`acceptPair` veya `rejectPair` üzerinden cevaplar, rejectPair sucurePair listesine alınmamasını sağlar ve gönderilen hiç bir mesaj diğerine iletilmez +Ancak acceptPair sucurePair listesine alınmasına sebep olur ve request, send ve createRTC metotlarını serbestçe kullanmanızı sağlar + +```javascript +mwse.scope(async () => { + let peer = mwse.peer('325a8f7f-eaaf-4c21-855e-9e965c0d5ac9') // Diğer eşin socketId'sini belirtiyoruz + let me = mwse.peer('me'); + + // Eşin ulaşılabilir (online) olup olmadığını verir + let isOnline = await peer.isReachable(); + + if(isOnline) + { + // İleitşim kurmak için istek gönderiyoruz + await peer.requestPair(); + } + + // Bize gönderilecek olan istekleri dinliyoruz + me.on('request/pair', peer => { + // İstek gönderen kullanıcının bilgileri peer içinde bulunur + // iletişime devam etmek için isteği kabul ediyoruz + peer.acceptPair(); + // veya istemiyorsak reddediyoruz + peer.rejectPair(); + }) + + // Karşımızdaki kullanıcının ne cevap verdiğini + // anlamak için sistem ayrı ayrı cevaplar üretir + + // Kabul ettiyse accept eventini tetikler + me.on('accepted/pair', peer => { + // İstek gönderen kullanıcının bilgileri peer içinde bulunur + }) + + // Reddettiyse veya iletişimi sonlandırmışsa + // end eventi tetiklenir + me.on('end/pair', peer => { + // Kullanıcının bilgileri peer içinde bulunur + }) +}) +``` + +Eşleşme isteğinin kabul ve reddedilmesi sonucu isteği ileten bağlantı ile paylaşılır, bu andan itibaren her iki bağlantı tekrar eşleşme kurana kadar birbirleriyle iletişime geçemezler + +## Eşleşme sistemini kapatma + +Eğer uygulamanızde bu şekilde bir eşleşme güvenliği istemiyorsanız, bunu `disablePairAuth` ile kapatabilir `enablePairAuth` ile geri açabilirsiniz +Herhangi bir ayar vermemeniz durumunda default açıktır. Kapatmanız durumunda mwse sunucuları bağlantıyı keşfeden diğer bağlantıların serbestçe veri göndermelerine izin verir + +```javascript +mwse.scope(async () => { + let me = mwse.peer('me'); + + // Tüm kullanıcılar size mesaj iletebilir + await peer.disablePairAuth(); + + // Sadece eşleşmiş kullanıcılar size mesaj iletebilir + await peer.enablePairAuth(); +}) +``` \ No newline at end of file