Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 19.03.2018 19:11:01

sercan44
Üye
Kayıtlı: 16.03.2018
Mesajlar: 28

Online Kullanıcıları Görme Sorunu ?

merhaba arkadaşlar ben sisteme login olmuş kullanıcıları görmek istiyorum lakin bir sorunum var. ! ?
Resimler
https://resmim.net/f/wp4hw5.jpg
https://resmim.net/f/18dsFb.jpg
https://resmim.net/f/NlwTEQ.jpg


kullanıcılar  login olurken onlinekullanicilar tablosuna kaydediliyor.
kullanıcıları 3 saniyede bir ajax ile güncelleyorum.
resimdeki kodlarla goreceğiniz gibi yazmış olduğum sorgu kullanıcıların girmiş olduğu tarih saati 20 saniye once ile eşleştiriyorum eğer MYSQL SORGUSUNDA eşitleniyor ise
onlinekullanicilar tablosundaki kullanıcının tarihiini güncelliyorum. buda online olarak gözükmesini sağlıyor.
lakin şuan için söyle bir sıkıntım var login olmuş kullanıcı Cookie'si aşağıda görüldüğü gibi oluşturuluyor.
  Cookie::queue(Cookie::forever('kullanici', $kullanici));
ile kullanıcı bilgileri eklenmiş ben bunu Cookie::get("kullanici") ->İd olarak almak istedigimde cookie hiç oluşmamış olarak geliyor. halbuki diğer controllerlar'da ve diğer işlemlerde gayet iyi çalışıyor.ben burada kullanıcı_id'sini almak istiyorum.fakat alamıyorum
e bende kendim kullanicinin id bilgisini tutmak istiyorum o yüzden aşağıdaki kodu kullanıcı login olduğunda oluşturuyorum.
Session::put("kisinow",$kullanici->id);
kodunu yazıyorum ki güncelleme alanında

               if(Session::has("kisinow"))
                echo "kisinow var";
            else
                echo "kisinow yok";

var ise alayim ve tabloda kullanıcı ile eşleşme sağlatıp ona gore güncelleme yapayim.lakin  yukarıda yazdıgım bu basit kod biile calısmıyor.
nasl bir yontem izleyip onlinekullanıcılar işlemini gerçekleştirecek birşey yapabilirim.

Çevrimdışı

#2 20.04.2018 01:11:42

dark
Üye
Kayıtlı: 15.02.2018
Mesajlar: 13

Yanıt: Online Kullanıcıları Görme Sorunu ?

Bence suna bir göz atmalısın bu pageti indirip daha rahat çalışa bilirsin https://github.com/thomastkim/laravel-online-users/

Son düzenleyen sineld (20.04.2018 10:05:11)

Çevrimdışı

#3 20.04.2018 10:05:25

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,327
Website

Çevrimdışı

#4 20.04.2018 10:26:27

alihankoc
Üye
Kayıtlı: 14.09.2017
Mesajlar: 34

Yanıt: Online Kullanıcıları Görme Sorunu ?

belki ilk başta zor geliyor ama nodejs ile bu işi hiç veritabanına ihtiyaç duymadan çözebilirsiniz.
Socket.io paketi bu işi veritabanına hiç uğramadan halledebilir. 3 saniyede bir sorgu korkunç bir fikir bence. Trafik düşükse belki geçici çözüm olabilir ancak gerçekten bir kaç satır nodejs kodu ile online kullanıcı sayısı rahatlıkla alınabilir. Nodejs de javascript yani farklı birşey de değil.

Sunucunuza yada local ortamınıza nodejs kurma imkanınız varsa aşağıdaki kodlarla online kullanıcı sayısını görüntüleyebilirsiniz.

// Nodejs tarafı
var app = require('express')()
var http = require('http').Server(app)
var io = require('socket.io')(http)
var count = 0
io.on('connection', function(socket){
   count ++;
   io.emit('kullaniciSayisi', { count: count });
   socket.on('disconnect', function(){
    count --;
     io.emit('kullaniciSayisi', { count: count });
  });
});
http.listen(3000, function(){
  console.log('listening on *:3000');
});
// artık sunucumunuz 3000 portundan bağlanan ve çıkan kullanıcıları dinleyebileceğiz. . 
// konsoldan node dosyaadi.js diyerek uygulamayı başlatıyoruz.
// konsoldan çıkınca çalışmaya devam etmesi için forever paketini aşağıdaki şekilde kullanabilirsiniz. 
// npm install forever --save 
// forever ile başlatmak için "forever start index.js"
//HTML tarafı

<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
  $(function () {
    var socket = io.connect('https://domaim.com:3000');
    socket.on('kullaniciSayisi', function(e){
      console.log(e.count)
    })
  })
</script>

Artık bu sayfaya birileri bağlandığında tarayıcı konsolunda kullanıcı sayısı yazar.
Kodları ezbere yazdım denemedim, ufak hatalar olabilir. Ama bulması kolaydır olmadı buradan yazarsınız.
bu html kodlarını tüm sayfalara dahil etmeniz yeterlidir.
Biraz araştırarak kullanıcıların hangi sayfada olduklarını, ne zaman bağlandıklarını falan bir çok detayı görebilirsiniz.
localstorage gibi araçlarla da kullanıcıyı sayfalar arası geçişlerde takip edebilirsiniz.
Redis kullanarak herşeyi aynı anda laravelden de takip edebilirsiniz.
artık yaratıcılığa ve araştırmaya kalmış bir durum.

Kolay gelsin.

Son düzenleyen alihankoc (20.04.2018 10:35:54)

Çevrimdışı

Forum alt kısmı