Merhaba arkadaşlar. Bir çoğumuz sitelerimizde veritabanındaki değişimleri anlık olarak sayfalara yansıtmak ister.. Tabi bunun için çeşitli çözümler mevcuttur..
Yaygın olarak kullanılan ajax ile vt yi belirli zaman aralıklarıyla kontrol edip çekilen veriyi istenen div tagına yazdırmaktır.. Ancak bu olayın en büyük dezavantajlarından birisi de vt sorgusunun sürekli yapılması.. Yani istenilen bilgi varsa da yoksa da bu sorgu belirli zaman aralıklarında yapılır.. Böylece veritabanında şişmeler ve sunucuda kasılmalar meydana gelir.
Bu konu üzerine yaptığım araştırmada Comet teknolojisi diye bir şey duydum.. Comet veritabanına uzun süreli bir sorgu gönderir. Eğer veritabanında sonuç yoksa kullanıcıya bilgi gönderilmez ve uzun süreli olarak bu sorgu aktif halde kalır. Veritabanında sonuç oluştuğu anda kullanıcıya anında veri gönderilir. Yani belli zaman aralıklarıyla değil de sürekli ya da uzun süre kullanıcı ile sunucunun aktif kalmasını sağlayan bir teknolojiymiş..
Araştırmalarımda malesef bu sistemi nasıl kullanacağımız hakkında tatmin edici bilgi bulamadım.. Konuyu açmamın sebebi burada bilen arkadaşlar varsa bize yardımcı olmalarını rica ediyorum. Konuyla ilgili kim ne biliyorsa lütfen bilgilerinizi bizimle paylaşın..
Verdiğin link için teşekkürler goodmen_ulvi fakat şahsen ben asp ile çalışıyorum ve malesef hiç php bilgim yok.. Bu konuda neler yapabilriz acaba? Yani asp ile ajax birlikte çalışıp sunucuya bağlanarak aynı olayı yapmamız mümkün mü?
Bende ASP.NET kullanıyorum, bu yöntemi kulllanmayı istiyorum fakat konak61'in dediği gibi kaynak neredeyse hiç yok. Kullanan arkadaşlar varsa örnek atabilirlerse çok iyi olur.
asp konusuna attığım linkte bunun ing. hali mevcuttu... ordan çıkarcağımız mantığı çıkardık ama en azından asp için konuşursak pek işlevsel olmadığına kanaat getirdik... polling yöntemi dışında diğer iki yöntem sunucu tarafında gereksiz beklemelere ve zorlamalara neden olacağını görebiliyoruz...
comet ajax ın daha dinamik hali. sunucu tarafından gönderilen responce sürekli olarak okunmaya devam ediyor (stream gibi) . ajaxtan çok daha dinamik bir yöntem ama VT güncellince haber vermesi gibi bir şey DAHİLİ OLARAK comet ile mümkün değil. çünkü ajax ın gelişmiş hali gibi bir teknoloji comet en basit anlamında.
Her ajax ya da comet isteğinde veritabanına sorgu gönderilmesini istemiyorsanız proxy benzeri bir uygulama yapabilirsiniz. comet ya da ajax isteklerini handle eden sayfa direkt olarak VT ye gitmez. önce ram deki bir kaynağa gider. RAM deki kaynakta her kullanıcının VT yi sorguladığı son an tutulur. bu session ile de yapılabilir çok zor bir şey değil. Veritabanındaki tabloların son güncellenme tarihleri de aynı şekilde ram deki bir değişkende tutulur. bunun için asp.net teki application dizisi ya da php deki apc, xcache gibi modüller kullanılabilir. eğer kullanıcının istek gönderdiği tarih son güncellemeden sonraysa VT ye hiç bağlanmadan direkt olarak güncellenmedi response u gönderilir (zaten şişmelerin en büyük nedeni bu aşamada VT ye bağlanılması). değilse VT ye bağlanılır veri çekilir, response gönderilir.
Bu sistemin en büyük avantajı veri güncellenmeden kesinlikle VT ye sorgu gönderilmesi. İstediğiniz kadar istek yollayın ajax ile comet ile VT ye sorgu gitmez. en fazla iis şişer ki ona da kolay kolay bir şey olmaz.
Eminim bu işi yapan hazır kütüphaneler vardır ama bir bilgim yok
Facebook'un kullandığı teknoloji hangisi peki? Yani adamlar olayı nasıl aşmış. Php de bu teknolojinin çalışma mantığı ile aspde bu tknolojinin çalışma mantıkları farklı değil ki.. İkisinde de sonuçta sayfaya girilince sorgu yapulur ve sunucuyla iletişim kesilene kadar bağlantı aktif kalır. Bunun asp için veritabanında şişme olacağını düşündünüz. Peki anlamadığım olay şu. Facebook milyonlarca kullanıcısı olan bir site bu sistemi nasıl kullanıyor ki onlarda şişme olmuyor?
Sık Kullanılanlar