

Her "Connect" İn Bir "Disconnect" İ Yok Mudur? (Node.Js, Redis, Socket.İo Vs.. İçerir)
-
Ben sistemdeki online kullanıcıların sayısını socket.id değerlerini sayarak buluyorum. Kullanıcı sisteme bağlandığında socket.id değerini veritabanına alıyorum, sistemden çıktığında socket.id değerini aratıp siliyorum.
Log kayıtlarına bakıp "connection" tetiklenirken ve "disconnect" tetiklenirken hangi socket.id ler bu soruna neden oluyor diye bir fikir edinilebilir diye düşünüyorum.
Ben node.js çalıştırırken pm2( https://github.com/Unitech/pm2) kullanıyorum. Detaylı log kayıtları verebiliyor.
-
selamlar..
bir süredir online kullanıcı sayısı ve oda sayısında fonksiyon bozukluğu yok. çözüm yolum;
1) server tarafında socket.io-disconnect eventinde socket.on yerine socket.once kullanmak.
2) client tarafında server ile bağlantı kurulurken {'force new connection': false} ayarını girmek. tabi bunun bazı dezavantajları olabilir, özellikle sağlıklı olmayan, kopan bağlantılarda.. bunun yerine sunucu tarafında da birşeyler düşünülebilir..
kodlar şu şekil oldu:
//SERVER SIDE: socket.once('disconnect', function(){ //event trigger when a client disconnect client.decr('monitor_online_users'); //FOR_MONITORING //... //CLIENT SIDE: var socket = io('http://128.128.128.128:3333', {'force new connection': false });sevgiler..