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.