Bir "kimlerin çevrimiçi olduğunu" nasıl uygulanacağı

4 Cevap php

Nasıl bir PHP kullanarak bir "çevrimiçi" özelliğini uygulama hakkında gitmek istiyorsunuz? Tabii ki, bu damgaları kullanarak içerecektir, ve, phpBB adlı oturum tablosunda baktıktan sonra, bir veritabanında en son ziyaret saklamak içerebilir.

Bu etkili bir yöntem mi, yoksa bu fikir yürütüyor daha iyi yolları vardır?

Edit: Ben zaman taşması Stack hala yeni çünkü, yanlışlıkla bu topluluk wiki yaptı.

4 Cevap

Kaydedilir oluyor herkesin takip etmek için bir veritabanı kullanarak hemen hemen bunu yapmak için tek yoldur.

Ne yapayım, kullanıcı bilgi ve zaman damgası tabloya veya birisi günlükleri ile bir satır eklemek ve zaman damgası etkinlik bu kullanıcı ile orada her zaman güncelleyin. Ve ben son 5 dakika aktivite vardı tüm kullanıcıların çevrimiçi anda zannedebilir.

Eğer uygulama şekline bağlı olarak (ve uygulamak durumunda) oturumları, aktif kullanıcı sayısını almak için aynı depolama ortamı kullanabilirsiniz. Eğer dosya tabanlı oturum modeli kullanın Örneğin, sadece oturum dosyalarını içeren dizini tarama ve aktif dosya sayısını döndürür. Eğer oturum verilerini saklamak için veritabanı kullanıyorsanız, oturum tablodaki satır sayısını döndürür. Tabii ki bu sizin oturum (yani sizin oturumu 30 dakika bir zaman aşımı varsa, sen son 30 dakika içinde aktif kullanıcıların bir listesini alacak) olan zaman aşımı değeri ile mutlu olduklarını varsayarak edilmektedir.

Bu uygulamanın birçok yolu vardır.

Sadece yoklama bu uygulayabilirsiniz.

Belirli araliklarla müşterilerine kontrol ve müşteri sayıları saymak geri yanıtladı.

Bu değer online kullanıcı sayısı olarak kullanılabilir.

Ben daha iyi bir yol Push teknolojisini kullanarak yerine, her x saniye veya x dakika belli online insanları kontrol düşünüyorum.

Bu sadece insanlar giren ve olayı tarafından terk zaman sunucu bildirin.

Öyleyse sunucu sadece artırmak ve olaylar müşterilerine gelen zaman online kullanıcı sayma değişkeni azaltmak.

I APE bakmak, Socket.IO öneririz.

Ayrıca bu tür XMPP, Jabber olarak göz önünde birçok vardır.

Bunu bu şekilde yapmak için düşünüyordum:

When the user logs in, his userid and timestamp will be inserted in to a table. Then for every 5 minutes, i will call a php script via ajax to check whether the user is logged in, and if so, update his timestamp in the table.

Kullanıcı oturum değilse, sadece onun kaydını silin.