• 28-03-2013, 10:35:41
    #1
    Merhaba üstadlar, ben php'de yavaş yavaş üst seviyeye çıkmaya çalışıyorum. Mvc yapısını yeni yeni öğreniyorum, araştırıyorum. Hem kendimi geliştirmek hem de uzun zamandır aklımda olan bir projeyi hayata geçirmek için bir kaç konuda değerli fikirlerinize ihtiyacım var.

    Projemi Codeigniter kullanarak yazmayı düşünüyorum veritabanı olarak da mysql kullanacağım. Projenin temelinde tıpkı Facebook veya Twitter'daki gibi bir anlık veri uygulaması yatıyor. Bunun ajax ile uygulamarını daha önce görmüştüm fakat bir kaç araştırma sonucu daha performanslı ve profesyonel bir yapı olan websocket olayını gördüm, sonrasında da nodejs.

    Şu ana kadar bilgisayarın local sunucusunda kendi kendine uğraşan ben için tüm olaylar biraz kafamı karıştırdı açıkçası. Yapmak istediğim Codeigniter çatısını kullanarak kendi projemi hazırlamak ve websocket yapısını öğrenmek.

    Sizden sadece şu olayı biraz açıklamanızı rica edeceğim, nedir ne değildir şu websocket? Codeigniter ile kullanılır mı? MySql ile performanslı çalışır mı?

    Teşekkürler şimdiden.
  • 28-03-2013, 11:08:15
    #2
    websocket yerine ajax long polling yapsan daha iyi olur bence,websocket her browser desteklemiyor gelecekte belki ama şimdilik iyi değil,swf üzerinden aktarım yapsan gene bir dert flashsız pclerde var en iyisi ajax long polling şeklinde

    Facebook un chat ve bildirim sistemide aynı şekilde long polling kullanıyor

    long pollingteki mantık şu
    ajaxla timeout u 30 saniye olarak ayarladığın bir yere sürekli istek yolluyorsun

    php den isteği alıyorsun ama echo ile cevabı hemen döndürmüyorsun toplamda 30 saniyeyi aşmıycak şekilde sorguya yanıt hazırlıyorsun şöyle ki

    php isteği aldığı zaman mesela adama gelen yeni cevap yoksa bekliyorsun tekrar ayni şekilde 30 saniye süre dolunca yeni gelişme yok gibi cevap döndürüyorsun bu sefer o bağlantı bitiyor tekrar bağlanıyor client bu sefer gene 30 saniye bekliyorsun vs. vs. ama bu litespeed tarzı web server kullananlara göre değil çünkü aynı anda ortalama 50 60 php nin çalışmasına izin veriyorlar. bir sürü vps alıp bağlaman şart

    google dan bulduğum örnek kodlar

    setInterval(function(){
        $.ajax({ url: "server", success: function(data){
            //Update your dashboard gauge
            salesGauge.setValue(data.value);
        }, dataType: "json"});
    }, 30000);
    <?php
        $time = time();
        while ((time() - $time) < 25) {
            $data = $db->getNewMessage ();
    
            if (!empty ($data)) {
                echo json_encode ($data);
                break;
            }
    
            usleep(1000000); // 1 Second
        }
    ?>
    long pollingle çalışan chat uygulamam oda sistemli chat uygulamam
    https://github.com/tontonq/node-roomchat

    bence nodejs - socket.io daha basit uygulanabilir ihtiyaçları yeterince karşılayan bir sistem
  • 28-03-2013, 11:14:36
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Tontonq dogru soyluyor. Elin degmisken mysql den de NoSQL ile kurtulmak isteyebilirsin
  • 28-03-2013, 12:30:03
    #4
    aredhelrim adlı üyeden alıntı: mesajı görüntüle
    Tontonq dogru soyluyor. Elin degmisken mysql den de NoSQL ile kurtulmak isteyebilirsin
    MongoDB var aklımda
  • 28-03-2013, 16:47:06
    #5
    Long polling konusunu araştır arkadaşların dediği gibi çoğu dertten kurtarır seni.
  • 07-04-2013, 02:41:26
    #6
    PHP ile websocket'in arka yüzünü yapmak biraz karışık. Sistemi web socketin arka yüzü ve asıl site olarak 2 şekilde yazıyorsunuz. Asıl site, bilindik şekilde çalışıp web sockete bağlanıyor. Arka yüzde ise yazdığınız PHP dosyasını terminalden çalıştırmanız gerekiyor.