Javascript Array Undefined Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Socket.io kullanmam gerektiği için js'ye bodozlama giriş yaptım. rooms adında bir arrayim var. Bu arraye .push metodu ile veriler ekliyorum. Fakat .user1ID == 0 kısmında şu hatayı veriyor.
    "TypeError: Cannot read property 'user1ID' of undefined"
    rooms[whichRoom].roomName'i değiştirebilirken .user1ID'yi değiştiremiyorum.

    var rooms = [];
    
    rooms.push({"roomName" : randomRoomName, "roomCount" : 0, "user1ID" : 0, "user2ID" : 0});
    
    if(rooms[whichRoom].user1ID == 0){
               rooms[whichRoom].user1ID = socket.id;
            } else {
                rooms[whichRoom].user2ID = socket.id;
            }

     

    h0rtl4kk tarafından 23/Nis/17 22:52 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    whichRoom adlı değişkenin işaret ettiği dizi index'i tanımsız.

    Yani senin kodunda whichRoom = 5 olsun. rooms[5] tanımsız olduğu için o hatayı veriyor.

    Mesela kodunu:

    var rooms = [];
     
    rooms.push({"roomName" : randomRoomName, "roomCount" : 0, "user1ID" : 0, "user2ID" : 0});
    
    whichRoom = 0;
    
    if(rooms[whichRoom].user1ID == 0){
        rooms[whichRoom].user1ID = socket.id;
    } else {
        rooms[whichRoom].user2ID = socket.id;
    }

    olarak değiştirdiğimizde herhangi bir hata almayacaksın.

     

     

    Yani rooms[whichRoom] adlı değişkenin var olup olmadığını kontrol etmen gerekiyor.

    var rooms = [];
     
    rooms.push({"roomName" : randomRoomName, "roomCount" : 0, "user1ID" : 0, "user2ID" : 0});
    
    if(typeof rooms[whichRoom] === 'undefined') {
        // rooms index'i olmadığında yapılacak işlemler..
    }
    
    if(rooms[whichRoom].user1ID == 0){
        rooms[whichRoom].user1ID = socket.id;
    } else {
        rooms[whichRoom].user2ID = socket.id;
    }

     

    PcK0 tarafından 23/Nis/17 23:04 tarihinde düzenlenmiştir

    Sadece bi imza..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Teşekkürler. Şimdi gördüm hatanın sebebini. Bende push işleminde bir hata yaptım diye orayı inceliyordum. Meğerse whichRoom -1 dönüyormuş şuan.

    Sorun çözüldü.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    https://socket.io/docs/rooms-and-namespaces/

    Hocam bunu kullan...

    EDİT ; 
    https://github.com/socketio/socket.io-redis
    https://auth0.com/blog/auth-with-socket-io/

    https://github.com/auth0/socketio-jwt

    Bunlarada bak hocam vaktin var ise . Kolay gelsin

    MhmdAlmz tarafından 24/Nis/17 00:50 tarihinde düzenlenmiştir

    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 932 Toplam Mesaj: 4
socket.io undefined