Javascript Array Undefined Sorunu
-
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 -
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 -
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ü.
-
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
