Node.js ile Sensör Verilerinin Android'den Takibi

×

Error message

  • Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 692 of /home/korayal/public_html/includes/bootstrap.inc).
  • Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 695 of /home/korayal/public_html/includes/bootstrap.inc).
  • Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 696 of /home/korayal/public_html/includes/bootstrap.inc).
  • Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 697 of /home/korayal/public_html/includes/bootstrap.inc).
  • Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 700 of /home/korayal/public_html/includes/bootstrap.inc).
  • Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 702 of /home/korayal/public_html/includes/bootstrap.inc).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 156 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 157 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 158 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 159 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 160 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 161 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 162 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 163 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 164 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 165 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 166 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in include_once() (line 167 of /home/korayal/public_html/sites/default/settings.php).
  • Warning: ini_set() has been disabled for security reasons in drupal_settings_initialize() (line 806 of /home/korayal/public_html/includes/bootstrap.inc).

Zaman zaman periyodik veri üreten sistemlerin durumunu anlık takip etmek gerekebiliyor. Bu durumda ekran başında cihazın ürettiği anlık verileri takip etmek yerine, hazırladığınız ufak bir uygulama aracılığıyla istediğiniz şartlar oluştuğunda sizi bilgilendirmesini sağlayabilirsiniz. Geçtiğimiz günlerde yaptığım bazı kurcalamalar sonucunda, benim çeşitli platformlarda kullanmakta olduğum Notify My Android servisini Node.js uygulamalarına entegre edeceğiz.

Notify My Android, tek seferlik düşük bir ücret karşılığında dakikada maksimum 800 adet bildirim almanızı sağlayan, çeşitli yazılımlarda bildirim hizmetleri arasında bulunan Growl gibi uygulamaların Android alternatifi olarak karşımıza çıkmış bir servis.

(Aslında Notify My Android servisinin yapacağı işlemi de kendimiz halledebilirdik, fakat burada biraz da işi çabucak halletme çabasındayız. Zira o yoldan gidersek, bir de Android uygulaması yazma taraflarına kaçmamız gerekecek)

Notify My Android, HTTP POST ile gönderdiğiniz sorgulara bir XML yanıtı döndüren basit bir API'a sahip. Burada da yaptığımız zaten bu haberleşmeyi Node.js ortamına taşımak:

XML ile direkt olarak uğraşmayı pek sevmediğim için, kendilerini JavaScript'te oynaması çok daha kolay olan JSON formatına "xml2js":https://github.com/Leonidas-from-XIV/node-xml2js adlı Node.js modülü aracılığıyla dönüştürüyoruz.
HTTP GET ya da HTTP POST sorguları için ise normalde http ya da https kullanabilirdik. Fakat burada göndereceğimiz parametre sayısı fazla olduğundan ve biraz da Centos tarafında bu modüllerle sıkıntı yaşadığım için request modülünü kullanmaya karar verdim.

Örnek kodumuz şu şekilde:

Şimdi de bir TCP sunucu açıp gelen verileri dinleyip, duruma göre kendimize uyarı gönderelim:

Tags: