Üyeleri sitesinde PHP sohbet Uygulanması

3 Cevap php

Ben (bir özel kutusunda üzerinde LAMP) ile sohbet eklemek istiyorum üyeler site var. Bu çok karmaşık olması gerekmez, ancak sohbet için zaten oturum açmış üyelerin adlarını kullanmanız gerekir.

Bu benim için bir yan proje biraz, o yüzden oldukça mümkünse sıfırdan yazmak ve istemem Varolan bir komut dosyası veya sınıf ideal olacaktır. Ben aramalardan bir düşeni yaptık ve bir JSON / Ajax doğru eğilerek orada gibi görünüyor, ama ben kesin bir şey bulamıyorum.

Herhangi bir ipucu / işaretçiler?

3 Cevap

İşte (AJAX / JSON iki tabanlı) size yardımcı olabilir iki projeleri şunlardır:

  • jQuery Ajax Chat plugin - jQuery için basit, hafif eklentisi. Çan ya da ıslık, ama o işi alır.

  • Ajax IM - Tek bir masaüstü sohbet istemcisi beklediğiniz tüm özellikleri taklit etmek için çalışan bir tam gelişmiş bir web uygulaması. Oldukça ağır indirme boyutu (324KB sıkıştırılmış).

Şu anda benim projelerinden biri üzerinde temel bir sohbet sistemi için ilk birini kullanıyorum. (- Yerine onları kendi takma ad seçebilir icar zaten sisteme giriş yaptığınızdan beri) ben her kullanıcının sistem kimlik bilgilerini kullanarak uygulamak mümkün oldu. Numune AJAX tarafından boynuzsuz alır script PHP kaynak kodu içerir. Bu harika çalışıyor.

Genellikle bir web sitesi tabanlı sohbet sistemi inşa alınan üç yaklaşım vardır.

  1. Java applet solution - bulmak ya da bir sohbet sunucusuna iletir bir Java uygulaması oluşturmak ya. Uygulama, bir IRC istemcisi, veya özel bir sunucu ile bir ısmarlama chat istemcisi olabilir. Hatta bazı web siteleri arayüz tüm tarayıcıda JavaScript ve HTML tarafından işletilen bir iletişim ön uç gibi bir Java uygulaması kullanmak gördüm, ama Javascript sohbeti çalıştırmak için uygulaması olayları gönderir ve kabul eder.

  2. AJAX Mesaj / Anket - Bir kullanım mesaj yazar her zaman bağlı tüm kullanıcıların yeni iletiler için periyodik yoklama olan HTTP sunucusu, ileti göndermek.

  3. Comet - ağırlıklı olarak Javascript, her müşteri bir HTTP sunucusu için uzun vadeli bir bağlantı kurar ve idles kullanma. Bir mesaj kullanıcıya gönderilen edilirken, bu zaten önceden varolan bir bağlantısı üzerinden gönderilir. Ve bunun yerine onlar için yoklama, diğer kullanıcılardan gelen yeni mesajlar sadece aynı bağlantıyı aşağı akar.

Şahsen ben 3 seçenek en heyecan verici bulmak, ama en karmaşık yanı. Muhtemelen Comet gerektiren uzun ömürlü bağlantısını desteklemek için bir HTTP sunucusu kendi sürümünü oluşturmak gerekir. TCP / IP soket tanımlayıcı bir 16bit sınırı var çünkü, sizin sunucunuzda IP başına yaklaşık 64K prizleri, sınırlı olacak. (Her istemci açık bir soket gerekir, unutmayın!) Son olarak, Comet istemci tarafı kodu oluşturmak için teknikler tarayıcılar arasında çılgınca farklıdır. Orada Bunun için birkaç çerçeveler var, ancak yeni tarayıcıları çıkıp iken onları korumak gerekir.

Eğer küçük bir web sitesi yapıyoruz, ve bir halledilebilir meydan okuma karşısında istiyorsanız, o zaman sadece AJAX yoklama ile gitmek. Bu çok zor değil, eğlenceli, ve bir çok şey öğreneceksiniz. Eğer rahatsız olamaz, o sadece bir Java uygulaması bulabilirsiniz. Eşleşen bir sunucu ile yapılandırılmış sonra, bu çözüm çok istemci-agnostik olduğundan, bunu sürdürmek konusunda endişelenmenize gerek asla. Tabii ki, bu Java Runtime Environment istemci üzerinde yüklü olmasını gerektirir, ve bu her zaman doğru olacak değil ...

Periyodik (Prototip) (güncellenmiş veri için ajax periyodik güncelleyiciyi sunucuyu kontrol eder bu iş için güzel bir işlevi vardır) sohbet kutusuna sunucu ve yük değişimlerine sohbet mesajları göndermek için AJAX kullanın. "Bu karmaşık değil" senin özelliklerine altında bu hemen hemen çıplak kemikleri olduğunu.

Eğer sohbet mesajları veritabanına kaydedilmesini istiyorsanız Oh evet, ve, sure SQL enjeksiyonu kendinizi korumak yapmak.