13 Şubat 2015 Cuma

PrimeFaces Push



     Bu yazımda genel olarak PrimeFaces Push nedir , JSF ile nasıl kullanabiliriz ve dikkat etmememiz gereken hususlar nelerdir sorularına değineceğim. Öncelikle işin temelinden bir kaç örnekle başlayıp sonunda PrimeFaces Push teknolojisine geleceğim.

     Örneğin bir web sitesi tasarlıyoruz , sitede Borsa verilerinin güncel olarak  takibini sağlamamız gerekiyor. Bu isteneni nasıl yapabiliriz?

     Günlük hayatta mail uygulamalarımız açıksa gelen mailleri anlık olarak takip edebiliriz . Benzer şekilde chat uygulamalarında da karşıdaki bir şey yazdığında anında biz mesajını görebiliyoruz. Takip ettiğimiz birisi tweet attığında aynı anda bize yeni tweet olduğuna dair bildirim gözüküyor. Facebook'ta Okey oynarken diğer kullanıcıların hareketlerini gözlemleyebiliyoruz. Evet tüm bu örneklere baktığımızda ortak nokta olayların gerçek zamanlı ve sayfa yenilenmeden yapılabiliyor olmasıdır.

     Bu anında iletimi sağlayan teknoloji HTML 5 ile gelen Websocket'tir . Websocket günümüzde yaygın olarak kullanılmakta ve çoğu tarayıcı desteklemektedir.(Google Chrome , Internet Explorer , Firefox , Safari , Opera ...) Aynı şekilde Web uygulaması geliştirebileceğimiz bütün dillerle bu teknolojiyi kullanabiliriz. Teknik detaylar için aşağıdaki linklere göz atabilirsiniz;

http://en.wikipedia.org/wiki/WebSocket
http://www.tutorialspoint.com/html5/html5_websocket.htm

     Websocket temelinde javascript ile verileri taşıyor. Ajax yapısını da kullanarak her seferinde sayfayı yenilemeden verilerin güncellenmesini sağlıyoruz. PrimeFaces bir çok işimizi kolaylaştırdığı gibi Websocket konusunda da bize kolaylıklar sağlıyor. PrimeFaces'in bu teknolojisinin adı PrimeFaces Push'tur. Burada bizde sıfırdan Websocket için kodları yazabiliriz ama bu hem zaman alacak hem de bolca hatayla karşılaşacağız demektir.

http://www.primefaces.org/showcase/push/

    PrimeFace Push'ta Atmosphere Framework üzerine inşa edilmiştir. Sıfırdan kod yazmak yerine hazırı kullanmanın daha mantıklı olacağını düşünüyorum.

     PrimeFaces Showcase'de hazır kodlar bulunmakta ama bunları direk uyguladığımda bazı sıkıntılarla karşılaştım. Burada dikkat etmemiz gereken hususları da yazıp yazıyı bitiriyorum;


  • Maven kullanıyorsak pom.xml içerisine gerekli dependency eklemeliyiz
  • JSF içerisindeki web.xml kısmına da gerekli servlet tanımlarını eklemeliyiz
  • Managed Bean için RequestScoped annotation kullanırsak istediğimiz şekilde sonuç alamayabiliriz
  • Atmosphere Framework kullanılarak geliştirildiği için projemizde kullandığımız kütüphanelerin PrimeFaces tarafında kullanılan kütüphane sürümüyle aynı olmasına özen göstermeliyiz. Yoksa beklenmedik şekilde hatalar alabiliriz.
Aşağıda Arduino ve PrimeFaces Push ile yaptığım küçük bir uygulamayı izleyebilirsiniz!




   

1 yorum:

  1. merhabalar

    kod olarak paylaşım yapabilirmisiniz.

    teşekkürler.

    YanıtlaSil