Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Bulut ile Clientlerin bir biri ile anlık haberleşmesi/mesajlasması
#1
Buluta bağlanarak haberleşebilen/Mesajlaşabilen Clientler yapmak istiyorum. Ama Bu konuda çok bilgim yok. 
Bu haberleşme Anlık olmalı. Yani ClintA Buluta bir mesaj gönderdiğinde ClientB bunu anlık alabilmeli. 
Daha önce böyle bir uygulama yapan veya bilgisi olan var mı acaba ?
Cevapla
#2
Benzeri çok projem oldu. Ancak ClientA ve ClientB açısından teknik altyapınız nedir bilemiyorum.

* Bunlar multiplatform mu konuşacak. Chrome Browser ile de olur, Delphi form üzerinden de, Delphi FMX hatta Android üzerinden de ...
* Sorunuz aslında bir WEB projesi. Web konusunda bilginiz nasıl ?

EKLEME :
Bu linkte Telegram projesi anlatılmış. Bunu incelemek isteyebilirsiniz.

"How To Make A Windows and Mobile Telegram Messenger App"
Demo
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#3
(28-10-2021, Saat: 13:55)mrmarman Adlı Kullanıcıdan Alıntı: Benzeri çok projem oldu. Ancak ClientA ve ClientB açısından teknik altyapınız nedir bilemiyorum.

* Bunlar multiplatform mu konuşacak. Chrome Browser ile de olur, Delphi form üzerinden de, Delphi FMX hatta Android üzerinden de ...
* Sorunuz aslında bir WEB projesi. Web konusunda bilginiz nasıl ?

EKLEME :
Bu linkte Telegram projesi anlatılmış. Bunu incelemek isteyebilirsiniz.

"How To Make A Windows and Mobile Telegram Messenger App"
Demo

arkadaş kanımca, multi server ve asenkron soket data notification tarzı bir uygulama istiyor kanımca
Cevapla
#4
Öğrenmeye çalıştığım şey IOT cihazların çalışma mantığı..
Bir Kullanıcı birden Çok IOT cihaza sahip olabilir. Kullanıcının bulutta bir hesabı var ve O kullanıcıya ait tüm cihazlar buluta o kullanıcı hesabına kayıtlı. Aynı şekilde Binlerce kullanıcı bu buluta kayıtlı..

Şimdi Kullanıcı Cep telefonundan Bir Butona basınca Uzaktaki Sisteme Aç Komutu gönderecek Bulut üzerinden. Cihaz Aç komutunu Alınca Çıkısını açacak.. Aynı zamanda Kullanıcıya İşlemin Başarılı Olduğuna dair Geri mesaj gönderecek..

veya Cihazın üstündeki bir Butona basarak açmak istenirse Cihazı çıkışı açılacak ve bulut üzerinden Kullanıcıya Çıkısının acık olduğu bilgisini gönderecek Böylece Cep telefonundaki Uygulamada Anında Bu bilgi görünecek.

Bunu Bulut kullanarak Nasıl yapabilirim ? Eğer IOT , Rasbery pi , arduino gibi Cihazlara yabancıysanız bu cihazlar kafanızı karıştırmasın. Siz bu cihazları Birer bilgisayar olarak kabul edebilirseniz.
Bağlantı Güvenli olmalı. Cihazlar Buluta Kullanıcı ismi ve Şifresi ile Veya bir ID ile Login olmalı.. Web ile ilgili bilgim var. PHP biliyorum .
ama Bulut üzerinden Clientleri nasıl haberleştiririm bilmiyorum ve Bulut ile uğraşmadım. Bunu PHP Scriptle yapmaya kalkarsam ve 1milyon cihaz varsa ne olur Sunucu Kitlenmez mi ?

Bende Buluttan anlamadığım için Size ne gibi bilgileri aktarmam gerektiğini tam olarak bilemiyorum. Anlatamadığım veya anlamadığınız kısımlar varsa tekrar sorarsınız.
Cevapla
#5
Bulut deyince aklınızda ne canlanıyor onu anlatabilirseniz size de faydası olacak.
Aktif bir bilgisayar mı canlanıyor (cihazlar ile konuşan server/client tarzı) yoksa  pasif bir web host mu ?!  Bu düşünceniz aslında elinizdeki enstrümanlar ile ne yapmak istediğinizin cevabı olacak.

Elinizde sadece TCP üzerinden haber bekleyen cihazlar varsa ayrı çözümler, web üzerinden saat sorarak periyodu tamamlayıp ardışık sorgular yapan client dizisi ise ayrı çözümler göreceksiniz.

Kontrolsüz bir şekilde 1 milyon cihazı sunucuya yollarsanız o sizin probleminizdir. Çünkü sistemi kuracak olan sizin sorgu zaman aralığı optimizasyonu sağlamanız beklenir.

Bulut sadece bir kelime. Verinin lokalde değil de sahada bir yerlerde bulunduğunu ifade eden bir terim sadece. IoT cihazlar da belirttiğiniz gibi birer bilgisayar. Sonuçta nasıl ki bizler bu DelphiCan platformunda yazıyoruz. Butona tıklayınca RESPONSE alıyorsak, cihazlar da bu şekilde bir SUBMIT sonucu RESPONSE alacaklardır. Yani TCP Server/Client tarzı sürekli bağlı bir yapı kurmaya zaten çalışmazsınız.

Güvenlik sertifika ile sağlanır. Web tarafındaki yapının sizin cihazı kabul etmesi için sizin cihaz gibi davranan truva atlarını ayırabilmesi gerekir.

Özetle öğrenmek için ilk adımı atın. PHP biliyorum dediniz. Bir mysql çalışan web hostunuz illa ki vardır. Buraya bir veritabanı kurun. PHP ile gelen çağrıda temsili olarak IoT cihazı ifade eden bilgisayarınız ile benzersiz ID post edin. PHP tarafı bu kodu veritabanına almayı başarın. Ardından yetki için cevap döndürsün, sizin cihaz buna yetki kodunu göndersin. Kısaca konuşturun cihaz ile PHP'yi

Otomasyon için takıldığınız yer olacaktır. O zaman buradan yeniden başvurun. Yazılı kaynak sayısı çok fazla. Burada soru / cevap ile tecrübe aktarımı ancak belli bir tecrübeye ulaştığınızda mümkün olur. Yoksa suya yazı yazmak gibidir. Amaca ulaşması kolay değildir.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#6
Bir Örnek vereyim. Ewelinkin Cihazları var . En basiti 4li Output Switch Cihazı. Ewelink te Bir Hesap acıyorsunuz.
Sonra Elinizde tüm ewelnk chazlarınızı bir işlem ile Buluta kaydediyorsunuz.
Ceptelefonundan Bir Cihazı kapattıgınızda Örneğin bir odanın ışıgı. Cihaza bu bilgi Hızlı bir şekilde iletiliyor ve Işık kapanıyor.
Aynı zamanda Siz Işıgı Cihaz üzerindeki bir inputtan kapattıgınızdada Bu bilgi Anında cep telefonuza geliyor. aradaki gecikme 1 saniyeden dahaz az gibi...

Anladığım Kadarı ile Cep telefonundaki uygulama Klasik bir Web host'a Sorgulama yapar gibi çalışmıyor.
Websocket veya TCP/IP gibi calısıyor. Sanki her saniye soru yapmak değil de Sürekli Acık bir bağlantı var.... Tıpkı Chat veya messenger uygulaması gibi.

Zaten herhangi bir cihazdan bir veri gönderip Sunucudaki Mysql'e bunu kaydedeblirim Ve Belli zaman aralıklarıyla başka bir uygulamadan bunu sorgulatabilirim ama ozaman aradaki gecikme cok fazla oluyor.

Belkide Chat veya messenger tarzı bir uygulama olmalı bilemiyorum.
Bunu denedim Whatsapp dan diğer telefonuma mesaj attım o bile Ewelink ten yavaş kalıyor.
Cevapla
#7
Android dediğiniz anda başka bir boyuta geldiniz.

Sistemler haberleşmek için farklı protokoller kullanır. O zaman önce "Firebase Cloud Messaging" olayını bir deneyin. Ardından "Tethering" olayını. Bir de TCP Socket (server/client) olayını.

Protokol sizin ihtiyacınız olan neyse hızı o verir.

Araştırmalarınıza bir de "hole punching" olayını ekleyin. Öyle olur ki sunucu UDP ile aradan çıkar aynı ağdaki client dizisini birbiri ile konuşur halde bırakır. Bu da tepki süresini neredeyse sıfıra kadar çeker.

Öncelikle karar vermeniz gereken unsur ne kadar hıza ihtiyaç var. En hızlısı her zaman en iyisi değildir. Garanti isteniyorsa MySQL, yoksa yayınlayayım da alan olursa alır olmazsa sorun değil derseniz UDP. Her paket bir bir ulaşsın derseniz TCP -ki mobilde tercih edilmez, sağlıklı sürekli bağlantı garantisi yoktur-. Yani her protokolün görevi / ödevi kendine özgün. Siz bunları karışık da kullanabilirsiniz. Tek engel sizin ağ yapınız kalır.

Umarım aradığınızı bulursunuz başarılar.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#8
https://www.delphican.com/showthread.php...9#pid40749

biraz araştırdımda konular açılmış geçmişte.
Cevapla
#9
Sunucuları PBX telefon santralleri gibi sıraya sokan load balance tipi routerlar var. Bunu Google Cloud Platformlar uyguluyor zaten.

Bu yapı iş akışına dahil edilirse asıl yükü google üzerine almış olur. Firebase Cloud Messaging örneğini bu nedenle verdim.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Problem - ZKTeco Cihazlardan Anlık Veri Alma mad85 16 11.125 25-12-2023, Saat: 11:35
Son Yorum: osiso
  Tanımladığım record içindeki alanlardan biri ile ilgili sorun Bay_Y 2 1.121 07-03-2023, Saat: 12:03
Son Yorum: Bay_Y
  IdTCPClient-server haberleşmesi sadikacar60 2 1.412 12-06-2021, Saat: 10:24
Son Yorum: sadikacar60
  Databasede anlık değişikliği algılama Nedim 2 1.719 18-05-2021, Saat: 19:51
Son Yorum: Jakarta2
  [ÇÖZÜLDÜ] WebDav ile Bulut Sunucuya Dosya Yükleme theSinan 9 8.297 14-01-2021, Saat: 01:48
Son Yorum: SenayAkgun



Konuyu Okuyanlar: 1 Ziyaretçi