3 Oda Kurma ve Yönetme
saqut edited this page 2024-03-19 01:12:10 +03:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Oda kurma ve kapatma

Oda sistemi kullanıcıların bir araya gelerek, tek seferde bir grubun toplu olarak birbirleriyle mesajlaşabileceği bir yapıdır. Kişiler birbirlerini bulabilir, toplu mesajlar iletebilirler, odaya katılabilir veya ayrılabilirler

Odanın ayarlarını, odayı ilk oluşturan kişi belirler ve oda bir kez oluşturulduğunda yeniden aynı isimle oda açılamaz Oda türü (joinType) herkese açık free, davet ile invite, şifreli password veya herkese kapalı lock olabilir.


mwse.scope(async () => {

    let room = mwse.room({
        name: "Oda ismi", // odanın görünür ismi
        description: "Oda açıklaması", // odanın görünecek ismi
        joinType: "free", // herkese açık oda
        credential: "****", // varsa şifre
        notifyActionInvite: false, // yeni biri katılmak istediğinde tüm peerlere haber iletme özelliği
        notifyActionJoined: true, // yeni biri katıldığında tüm peerlere haber iletir
        notifyActionEjected: true, // Biri odadan ayrıldığında tüm peerlere haber iletir
        ifexistsJoin: false // true ayarlanırsa, oluşturma aşamasında oda zaten var yanıtı alırsa hata vermek yerine odaya katılır
    });

    // Verilen isime ait odaya katılmak için bu komut yeterlidir
    await room.join(); // --> odaya katılırken sorun oluşursa hata fırlatır

    // Verilen ayarlara sahip odayı oluşturmak için aşağıdaki komut yeterlidir
    await room.createRoom(); // -> oda oluştururken sorun oluşursa hata fırlatır

    // Var olan bir odadan ayrılmak için bu komut kullanılabilir
    await room.eject();

    // İçinde bulunduğu odanın tüm eşlerinin idsini verir
    let peers = await room.fetchPeers();
});

Oda içerisinde iletişim

Odaya katıldıktan sonra katılan kişiler room üzerinden mesaj iletebilirsiniz, verilen her mesajı sistem istisnasız tüm oda katılımcılarına iletmekten sorumludur Oda içerisindeki kişiler ile oda içindeki kişilerin listesini alarak özel iletişimede geçebilirsiniz ancak aynı odadaki kişiler sistem tarafında yinede güvenilir kabul edilmez Sistem pairAuth güvenliği kapalı olan kişilere mesajlar iletir ancak açık olan kullanıcıların her biri için ayrı ayrı eşleşme isteği göndermelisiniz


mwse.scope(async () => {

    let room = mwse.room({
        name: "Oda ismi", // odanın görünür ismi
        description: "Oda açıklaması", // odanın görünecek ismi
        joinType: "free", // herkese açık oda
        notifyActionJoined: true, // yeni biri katıldığında tüm peerlere haber iletir
        ifexistsJoin: false // true ayarlanırsa, oluşturma aşamasında oda zaten var yanıtı alırsa hata vermek yerine odaya katılır
    });

    // Verilen ayarlara sahip odayı oluşturmak için aşağıdaki komut yeterlidir
    await room.createRoom(); // -> oda oluştururken sorun oluşursa hata fırlatır

    // Oda içerisinde mesaj gönderildiğinde gönderilen paketi dinlemek için aşağıdaki komut kullanılabilir
    room.on('message', message => {
        // Odaya `message` paketi iletildi
    })

    // Odaya yeni birisi katıldığında haber almak için aşağıdaki komut kullanılabilir
    room.on('join', peer => {
        // Odaya katılan kişinin bilgisi peerde tutulur
        // Odaya katılan kişiyle bağlantı kurup, oda dışında kendisiyle iletişimede geçebilirsiniz
        peer.requestPair();
    })

    // Odaya birisi ayrıldığında haber almak için aşağıdaki komut kullanılabilir
    room.on('eject', peer => {
        // Odadan ayrılan kişinin bilgisi peerde tutulur
    })

    // Odadaki herkese mesaj iletmek için room içerisindeki send komutu kullanılabilir
    room.send({
        message: "Good year !" 
    });

    // Oda kapatıldığında close tetiklenir
    room.on('close', () => { })
});

Odanın kapatılması

Odalar odaya ait olan bağlantılar üzerine kurulur, tüm bağlantılar odadan çıktığında oda otomatik olarak kapatılır