WhatsApp MQTT kullanıyor mu
WhatsApp MQTT kullanıyor mu
Sohbet uygulamalarının perde arkasında
Kullanımda çok sayıda sohbet uygulaması var, ancak bunlardan sadece birkaçı, kullanıcıları çeken nitelikler nedeniyle öne çıkıyor. En iyi sohbet uygulamalarından ikisi Facebook Messenger ve WhatsApp olarak kabul edilir. Bu şirketler uygulamalarının mimarisi konusunda gizli olmasına rağmen, blog makalelerinden ve forumlardan parçalar ve bilgi parçaları bulmayı başardım. Bu bunların bir bileşimidir ve bu gerçekler modası geçmiş olabilir, çünkü tüm bu uygulamalar sıklıkla güncellenir.
1. Facebook haberci
Facebook’un Messenger en popüler sohbet uygulamalarından biridir. Birkaç yıl önce Messenger en iyi durumda değildi. Performansı ve uzay kullanımı geride kalmaya başlamıştı. Messenger çekme tabanlı bir model kullanıyordu. Uygulama her seferinde yeni mesajların kullanılabilirliği hakkında hafif bir push bildirimi ile kabul edildiğinde ve daha sonra uygulama, konuşma görünümünü içeren ağır bir JSON yanıtı çekip alacaktı. Ancak daha sonra Messenger, push tabanlı bir anlık görüntü + delta modeli kullanmak için güncellendi.
Anahtar noktaları:
- Messenger’ın performans ve uzay kullanım sorunları vardı.
- Başlangıçta mesaj alımı için çekme tabanlı bir model kullandı.
- Daha sonra, push tabanlı bir anlık görüntü + delta modeline geçti.
Sorular:
- Başlangıçta Messenger ile ilgili sorunlar nelerdi?
- Messenger mesaj alımı için hangi modele geçti?
Yanıtlar:
- Messenger’ın performans ve boşluk kullanım sorunları vardı.
- Messenger, çekme tabanlı bir modelden push tabanlı bir anlık görüntü + delta modeline geçti.
2. Naber
WhatsApp, Lyme/Lyce yığınına dayanmaktadır.
WhatsApp’ın perde arkasında, en büyüleyici ve önemli şeylerden biri Erlang’da yazılmış arka uçtur. Erlang’ın Whatsapp’ı dünyanın en iyi sohbet uygulamalarından biri haline getirmeye büyük katkısı var.
“Neden Erlang?”
Erlang genel amaçlı, eşzamanlı, fonksiyonel bir programlama dilidir. Erlang’ın yararlı olduğu bilinen alanlar, mesajın bazı yönleri verilen birçok bağlantı ve yönlendirme mesajını ele alıyor. Erlang bu senaryolarda büyük performans gösterdiğinden, telekomünikasyonla ilgili uygulamaların çoğu, uygulamalarında Erlang’ı kullanıyor.
WhatsApp Server’ın ilk uygulaması, Erlang’da yazılmış açık kaynaklı bir Jabber/XMPP Anlık Mesajlaşma Sunucusu olan Ejabberd kullanılarak yapıldı. Uygulama için kullanılan mesajlaşma protokolü XMPP’dir (genişletilebilir mesajlaşma ve varlık protokolü).
Sohbet uygulamasının bir diğer önemli yönü de veritabanı. Çoğu zaman, veritabanı gerçek zamanlı mesajlaşma uygulamalarında bir performans darboğaz haline gelebilir. WhatsApp, gerçek zamanlı dağıtılmış bir iletişim DBM’leri olduğu bilinen Mnnia’yı kullanır. Mnesia’nın önemli yönlerinden biri, çalışma zamanında yeniden yapılandırılabilmesidir.
WhatsApp, Facebook Messenger gibi messenger hizmetlerine kıyasla oldukça basit olarak kabul edilse de, tasarımı basit değil. Aşağıdaki diyagram, WhatsApp mimarisinin çok soyut bir görünümünü göstermektedir.
Whatsapp tabanlı ev otomasyonu: MQTT ile Protokol Köprüsü
Bu makalede, WhatsApp’ı desteklemeyen ancak MQTT, TCP, IMAP, vb. Gibi diğer iletişim protokollerini destekleyen cihazları kontrol edeceğiz. WhatsApp’ı desteklemeyen ev otomasyon cihazlarıyla bir ev kurulmuşsa, bu cihazlar tarafından desteklenen protokolleri kullanarak bu cihazlarla (denetleyiciler) iletişim kuracağız. Böylece, bu cihazlara bağlı ev aletlerini kontrol edebileceğiz.
Gerekli bileşenler:
- Python tabanlı WhatsApp API – Yowsup
- MQTT Kütüphanesi – Paho
- Python Kimliği
- Arduino IDE
Teknik bilgiler:
Protokol köprüleme, WhatsApp API’sını desteklemeyen cihazları da kontrol edebilir. Bu, verileri bir protokolden diğerine göndereceğimiz anlamına gelir. Bu makale, cihazları kontrol etmek için MQTT ve WhatsApp Köprüsü’nü gösterecek.
Blok Diyagramı:
Tüm iletişim, Linux tabanlı bir sisteme yüklenen bir Python betiği aracılığıyla olacaktır. Python komut dosyası, her iki protokolle iletişim kurmak için WhatsApp API ve MQTT kütüphanesine sahip olacak. Komut dosyası WhatsApp ve MQTT’ye mesaj gönderebilir ve alabilir.
Sorular:
- MQTT ile WhatsApp tabanlı ev otomasyonu için gerekli bileşenler nelerdir?
- Ev otomasyonunda protokol köprüsünün amacı nedir?
Yanıtlar:
- MQTT ile WhatsApp tabanlı ev otomasyonu için gerekli bileşenler Python tabanlı Whatsapp API (Yowsup), MQTT Kütüphanesi (PAHO), Python ID ve Arduino IDE’dir.
- Protokol köprüleme, bir protokolden veri göndererek WhatsApp API’sını desteklemeyen cihazların iletişimini ve kontrolünü sağlar (e.G., Mqtt) diğerine.
WhatsApp MQTT kullanıyor mu
Bağlantı başarılı olduktan sonra bunu kullanarak mesaj gönderebiliriz
Yayınla.single (konu, mesaj_data, hostname =”komisyoncu.hivemq.com”)
Sohbet uygulamalarının perde arkasında
Kullanımda çok sayıda sohbet uygulaması var. Ancak kullanıcıları çeken nitelikler nedeniyle sadece birkaçı göze çarpıyor. Bu en iyi sohbet uygulamalarından ikisi Facebook Messenger ve WhatsApp olarak kabul edilir. Bu şirketler uygulamalarının mimarisi hakkında ayrı olmasına rağmen, blog makaleleri ve forumlarından bitler ve bilgi parçaları bulmayı başardım. Bu onların bir bileşimidir ve bu gerçekler modası geçmiş olabilir, çünkü tüm bu uygulamalar sıklıkla güncellenme eğilimindedir.
1. Facebook haberci
Facebook’S Messenger en popüler sohbet uygulamalarından biridir. Birkaç yıl önce, Messenger’üzerinde t’en iyi şekil. BT’Performans ve boşluk kullanımı geride kalmaya başlamıştı. Messenger çekme tabanlı bir model kullanıyordu. Her seferinde, uygulama yeni mesajların kullanılabilirliği hakkında hafif bir push bildirimi ile kabul edildi ve daha sonra uygulama, konuşma görünümünü içeren ağır bir JSON yanıtı çekecek ve alacaktı. Ancak daha sonra Messenger, push tabanlı bir anlık görüntü + delta modeli kullanmak için güncellendi.
MQTT, makineden makineye (M2M) bağlantı protokolüdür. Son derece hafif bir yayın olarak tasarlandı/mesajlaşma nakliyesi abone olun – MQTT.org
Messenger altyapısında yapılan bir başka ilginç değişiklik, JSON’dan Müthiş. Bu büyük değişiklik, yük boyutunda% 50 azalmaya neden oldu.
Şiddet tarafında da önemli iyileştirmeler yapıldı. Daha önce her mesaj, Messenger’a depolama katmanından gelen mesajı okumak için bir tetikleyici göndermeden önce geleneksel bir depolama katmanına yazılmıştır. Ancak süreç, Facebook tarafından oluşturulan sıralı bir kuyruk uygulaması kullanılarak tamamen değiştirildi “İris”. Iris’in ilginç özelliklerinden biri, messenger ve depolama katmanı arasındaki mesaj senkronizasyonunu kolaylaştıran işaretçilerin kullanımıdır. Aşağıdaki resim, Messenger’da mesaj senkronizasyonunun nasıl gerçekleştiğini açıkça göstermektedir
Yukarıda açıklanan prosedür, mesaj teslimatının kullanılabilirlik ve kullanımda olan depolama katmanının yazma hızına bağımlılığını ortadan kaldırabildi. Iris mesajları geçici olarak saklar’Tüm mesajlar düzgün senkronize olana kadar destek depolama.
Başka bir ilginç gerçek, Iris’in destek depolanması MySQL ve Flash kullanılarak inşa edildi.
2. Naber
WhatsApp Lyme/Lyce Stack’e dayanmaktadır.
Whatsapp’ın perde arkasında, en büyüleyici ve önemli şeylerden biri Erlang’da yazılmış arka uç. Erlang’ın Whatsapp’ı dünyanın en iyi sohbet uygulamalarından biri haline getirmeye büyük katkısı var.
Neden Erlang ?
Erlang genel amaçlı, eşzamanlı, fonksiyonel bir programlama dilidir. Erlang’ın yararlı olduğu bilinen alanlar
> Birçok bağlantıyı kullanma
> Mesajın bazı yönleri verilen mesajları yönlendirme
Erlang, verilen senaryolarda harika bir performans gösterdiğinden, telekomünikasyonla ilgili uygulamaların çoğunda Erlang’ı uygulamalarında kullanın.
WhatsApp Server’ın ilk uygulaması Ejabberd kullanılarak yapıldı. Erlang’da yazılmış açık kaynaklı bir jabber/xmpp anlık mesajlaşma sunucusu. Uygulama için kullanılan mesajlaşma protokolü XMPP’dir (genişletilebilir mesajlaşma ve varlık protokolü).
Sohbet uygulamasının bir diğer önemli yönü de veritabanı. Çoğu zaman, veritabanı gerçek zamanlı mesajlaşma uygulamalarında bir performans darboğaz haline gelebilir. WhatsApp, gerçek zamanlı dağıtılmış bir iletişim DBM’leri olduğu bilinen mnesia kullanır. Mnesia’nın önemli yönlerinden biri, çalışma zamanında yeniden yapılandırılabilmesidir.
WhatsApp, Facebook Messenger gibi Messenger hizmetlerine kıyasla oldukça basit olarak kabul edilse de,’S tasarımı yok’T basit bir. Aşağıdaki diyagram, WhatsApp mimarisinin çok soyut bir görünümünü göstermektedir,
Whatsapp tabanlı ev otomasyonu: MQTT ile Protokol Köprüsü
Bu makalede, WhatsApp’ı desteklemeyen ancak MQTT, TCP, IMAP, vb. Gibi diğer iletişim protokollerini destekleyen cihazları kontrol edeceğiz. WhatsApp’ı desteklemeyen ev otomasyon cihazlarıyla bir ev kurulmuşsa, bu cihazlar tarafından desteklenen protokolleri kullanarak bu cihazlarla (denetleyiciler) iletişim kuracağız.
Böylece, bu cihazlara bağlı ev aletlerini kontrol edebileceğiz.
Gerekli bileşenler
Gerekli Araçlar/ Kütüphaneler Gerekli
Python tabanlı Whatsapp API-Yowsup
MQTT Kütüphanesi – Paho
Python Kimliği
Arduino IDE
Teknik bilgiler
Protokol köprüleme, WhatsApp API’sını desteklemeyen cihazları da kontrol edebilir. Bu, verileri bir protokolden diğerine göndereceğimiz anlamına gelir. Bu makale, cihazları kontrol etmek için MQTT ve WhatsApp Köprüsü’nü gösterecek.
Blok şeması
Şekil 1 WhatsApp ve MQTT protokol köprüsü
Tüm iletişim, Linux tabanlı sistemde yüklü bir Python betiği aracılığıyla olacak. Python komut dosyasında her iki protokolle iletişim kurmak için WhatsApp API ve MQTT kütüphanesi olacak.
Komut dosyası WhatsApp ve MQTT’ye mesaj gönderebilir ve alabilir.
Röle devreleri yoluyla ev aletlerine bir mikrodenetleyici (atga 328p) bağlanır. İletişim amaçlı olarak, ESP mikrodenetleyiciye bağlanır.
ESP, belirli bir konuda mesaj alan ve seri uart aracılığıyla mikrodenetleyiciye komut gönderen kodla yüklenmiştir.
Yani, şimdi herhangi bir kullanıcı WhatsApp’a mesaj gönderdiğinde, Python betiğimiz aracılığıyla mikrodenetleyiciye gider.
Devre şeması
Bu kart, bir röle devresi olan bir ışık anahtarına bağlı. Özelleştirilmiş Kurul 328 Kurulumuz yerine Arduino UNO Kurulunu da alabiliriz.
Sistem nasıl çalışır
Bir kullanıcı WhatsApp’ta Linux sistemimize bir mesaj gönderdiğinde, komut dosyası mesajı okur. MQTT protokolünü destekleyen IoT cihazı, belirli bir konudaki mesajları dinler. Bu mesajlar, cihaza bir cihazı açıp kapatmak için komuta edin.
Yani, şimdi Python komut dosyası tarafından okunan mesajlar bulunursa komutlar için taranır. MQTT Protokolü üzerindeki cihaza belirli komutlar gönderilir. Cihaz bu komutları okuduğunda, pimleri yüksek (açık), düşük (kapalı) çevirerek onlara etki eder
Kaynak Kodunu Anlamak
Biri Arduino + ESP için ve diğeri Linux’ta kurulan Python komut dosyası için iki tür kaynak kodumuz var.
Arduino Kod
Arduino, seri hakkında veri alan bir kodla yüklendi. Belirli bir iplik gibi alındığında “AÇIK” röle pimini (yüksek) açar ve alacak “KAPALI” röleyi kapatır.
eğer (rec == “AÇIK”)
DigitalWrite (röle, yüksek);
Seri.Yazdır(“Röle açık”);
Rec = “”;
>
eğer (rec == “KAPALI”)
DigitalWrite (röle, düşük);
Seri.Yazdır(“Röle Kapalı”);
Rec = “”;
>
ESP Kodu
ESP, bir seri bağlantı noktasında Arduino ile bağlantılıdır ve aynı zamanda bir MQTT konusuna abone olmuştur. Temel olarak, MQTT konusundaki verileri seri bağlantı noktasına ve seriden MQTT konusuna verileri gönderir.
ESP ve MQTT hakkında daha fazla bilgi edinmek için önceki makalelerimize bakın.
Python komut dosyası için kod
Python komut dosyası ile yüklendi “Yowsup” WhatsApp API’si WhatsApp’tan mesaj okumak ve göndermek için. Bu komut dosyasında iki dosya var koşmak.py Ve katman.py.
Dosya Çalıştırmayı Anlamak.py
Kütüphanelerimizi dosyanın en üstünde arayacağız
Yowsup’tan.yığınlar ithalat yowstackbuilder
Yowsup’tan.katmanlar.Auth Auther Import Ahterror
Yowsup’tan.katmanlar yowlayerevent ithal
Yowsup’tan.katmanlar.ağ içe aktarma yownetworklayer
Yowsup’tan.env ithalat yowsupenv
Ana sınıfın üstüne katman dosyasını da ekleyeceğiz “Elma katmanı” Bu dosyanın içinde var.
Katman İthalat EchoLayer’dan
Katman dosyasını herhangi bir şey adlandırabiliriz, ancak aynı adı buraya koymalıyız.
İçinde py, Ana değişkenimizi parola ve olaylar için ilan edeceğiz.
kimlik bilgileri = (“91xxxxxxxxxx”, “Hkhwvw5/wnr493hxk8nkl/htpno =”)
Şimdi onları katmana geçiriyoruz ve yığını inşa ediyoruz. Ayrıca, bağlantıyı canlı tutacak döngü denir.
yığın.setCredtials (kimlik bilgileri)
yığın.BroadcastEvent (yowlayerevent (yownetworklayer.Event_state_connect)) #Bağlantı sinyalini azaltma
yığın.Loop () #Bu program Mainloop
Dosya Katmanını Anlamak.py
Bu dosya MQTT için Protokol Kütüphanesi içerir ve WhatsApp’tan mesaj alabilir.
WhatsApp’tan mesajların nasıl alındığını anlatmak
Bu dosya, bu numaraya gelen herhangi bir mesaj alacak sınıfı içerir ve bu bir geri arama varlığı olacaktır, böylece başka bir döngü dosyanın içinde çalıştırılabilir.
@ProtocolentityCallback (“İleti”)
Def Onmessage (Self, MessageProtoColentity):
Eğer doğruysa:
Mesaj verileri ve mesajın geldiği sayı formu aşağıda elde edilebilir.
Incomming_message_data = MessageProtoColentity.Getbody ()
Bu gerçek mesaj olan mesaj gövdesini alacak. Bir dize değişkeninde saklayacak “Incomming_message_data”
Incomming_message_Sender = MessageProtoColentity.dan almak()
Bu satır, gelen mesaj iletişim numarasını dize değişkeninde saklayacak “Incomming_message_sender”
Gönderme ve alma için MQTT katmanlarını anlamak
Her şeyden önce, MQTT için gerekli olan kütüphaneleri içe aktaracağız.
Paho’yu içe aktar.MQTT.MQTT olarak müşteri
Paho’yu içe aktar.MQTT.yayın olarak yayınlamak
Şimdi MQTT istemcisi olan istemci adlı bir değişken ilan edeceğiz.
İstemci = MQTT.Müşteri()
Şimdi iki işlev geri çağrısı yapacağız 1. Mesaj almak için 2. Bağlantıda Bir Şey Yapmak Başarılı.
müşteri.on_connect = on_connect
müşteri.on_message = on_message
Son olarak, bir bağlantı noktasında MQTT brokerine bağlanacağız ve müşteriyi engellemeyen bir döngü içinde başlatacağız
müşteri.bağlamak(“komisyoncu.hivemq.com”, 1883, 60)
müşteri.loop_start ()
Bağlantı başarılı olduktan sonra bunu kullanarak mesaj gönderebiliriz
Yayınla.single (konu, mesaj_data, hostname =”komisyoncu.hivemq.com”)
WhatsApp’ta herhangi bir mesaj alındığında, bir dizede saklanır ve ardından bu dize, bu mesajı ışığı açma/kapama için bir komut olarak tanımlayan bazı anahtar kelimeler için tarar.
ELIF (“Işıklar Açık” Incomming_msg): #maçta bir şey
Durum eşleşirse, kontrol komutunu MQTT komisyonuna gönderiyoruz.
Yayınla.Bekar(“TS/Işık”, “AÇIK”, ana bilgisayar adı =”komisyoncu.hivemq.com”)
Tanınmayan herhangi bir mesaj alındığında, WhatsApp’taki mesaj bunun geçersiz olduğunu söylüyor.
WhatsApp ile cihazları kontrol etmek için protokol köprülemesini bu şekilde kullanabiliriz.
Xanecs/Axiom
Bu taahhüt, bu depodaki herhangi bir şubeye ait değildir ve deponun dışındaki bir çatala ait olabilir.
Şubeleri/etiketleri değiştirin
Şubeler Etiketleri
Şubeleri yükleyemedi
Gösterilecek bir şey yok
Etiketleri yükleyemedi
Gösterilecek bir şey yok
Zaten kullanımda olan isim
Sağlanan dal adı ile zaten bir etiket var. Birçok git komutu hem etiket hem de şube adlarını kabul eder, bu nedenle bu dalın oluşturulması beklenmedik davranışlara neden olabilir. Bu şubeyi oluşturmak istediğinden emin misin?
Create’i iptal et
- Yerel
- Kodlama
Https github cli
Web URL’sini kullanarak GIT veya SVN ile ödeme kullanın.
Resmi CLI’mizle hızlı çalışın. CLI hakkında daha fazla bilgi edinin.
Gereksiz giriş
Kod bölgelerini kullanmak için lütfen oturum açın.
Github masaüstünü başlatma
Hiçbir şey olmazsa, Github masaüstünü indirin ve tekrar deneyin.
Github masaüstünü başlatma
Hiçbir şey olmazsa, Github masaüstünü indirin ve tekrar deneyin.
Xcode’u başlatma
Hiçbir şey olmazsa, xcode’u indirin ve tekrar deneyin.
Visual Studio Kodunu Başlatma
Kod alanınız hazır bir kez açılacak.
Kod alanınızı hazırlarken bir sorun vardı, lütfen tekrar deneyin.
Son taahhüt
Git İstatistikleri
Dosyalar
En son taahhüt bilgilerini yükleyemedi.
En son taahhüt mesajı
Zaman
Okuma.MD
Axiom, bir MQTT sunucusuna bağlanan ve WhatsApp Mesajlaşma Hizmetine bir arayüz sağlayan bir Python programıdır.
- Bu repoyu klonla.
- Bağımlılıkları yükleyin
pip yükleme yowsup2 paho-mqtt
- Waserver/Config’i düzenle.py . Yowup2 CLI’den kimlik bilgileri gerekebilir. Buraya bakın.
- Koşmak
Python Waserver/Waserver.py
- Bir Waserver/Config-Produ Oluşturun.py
- Verilen dockerfile ile görüntüyü oluşturun . Ayrık yapılandırma dosyaları, farklı geliştirici/üretim yapılandırmalarına izin verir.
Mesajlar almak için WhatsApp/Gelen’e abone olun . Bir mesaj şöyle görünecek:
< "telefon": "4915112345678", "İleti": "Bir insandan merhaba!" >
Bu örnekte telefon numarası normalde +49 151 12345678 yazılır . Grup mesajları için telefon numarası, 4915112345678-1400000000 formunda (grup yaratıcısının telefon numarası ve oluşturmanın Unix zaman damgası).
Mesaj göndermek için WhatsApp/Giden: Yayınlayın:
< "telefon": "4915112345678", "İleti": "Bir bottan merhaba!" >
Şu anda sadece uygulanan komutta var
Grup Bilgisi (Üyeler, Başlık) almak için WhatsApp/CMD’de yayınlayın
< "CMD": "Group_info", "telefon": "4915112345678-1400000000", "geri çağırmak": "any_string_here" >
Geri arama, bu komutun yanıtı tanımlamak için kullanılacak. Bunun için bir UUID kullanmanız tavsiye edilir. Yanıt WhatsApp/IQ konusuna yayınlanacak:
< "CMD": "Group_info", "geri çağırmak": "any_string_here", "Grup kimliği": "4915112345678-1400000000", "katılımcılar": < "4915112345678": "yönetici", "4915187654321": hükümsüz, >, "ders": "Örnek grup" >
Hakkında
WhatsApp Mesajlaşma Hizmeti için MQTT-Interface
WhatsApp mesajlarınızı nasıl sıralar??
Elo orada, dostum! BT’Birkaç ay içinde pandeminin neredeyse iki yılı olacak ve yaşam tarzlarımızı uyarlama şeklimiz, oh oğlum! Hepimiz bağlı kaldık ve hatta çeşitli mesajlaşma platformlarını kullanarak işimizi yaptık. WhatsApp, Instagram ve Facebook dahil olmak üzere birden fazla platformun kullanımı önemli ölçüde arttı. WhatsApp en yüksek kullanıma sahipti ve Hindistan WhatsApp’dı’Bu yılın en büyük pazarı! Ancak WhatsApp’ın, bu mesajlaşma platformu tarafından mesajlarınızı başarılı bir şekilde sunmak için kullanılan çok temel veri yapılarından birini kullandığını biliyor muydunuz??
Kuyruk nedir?
Bir kuyruk, adından da anlaşılacağı gibi, tam olarak gerçek hayattaki gibidir. Bir kuyruğun iki ucu, bir baş ve kuyruk vardır ve eşyalar sadece kuyruk ucuna eklenir ve baş ucundan çıkarılır. Pizza almak için bir sırada bekleyen bir grup insanı ve oraya gelen ilk kişi hayal edin, ben.e., Hatta birincisi tercih edilecek ve pizzayı alacak veya “dışarı çıktı.” Bu konsept teknik olarak FIFO olarak bilinir veya ilk önce.
Mesaj kuyruğu nedir?
Başlığın göstergesi olarak, bir mesaj kuyruğu mesajlarla dolu bir kuyruktur. Bu asenkron hizmet, iki kişi veya bir grup kişi arasında mesaj veya veri aktarmak için kullanılır. Mesajı kuyruğa gönderen kişi yapımcıdır ve mesajı alan kişi tüketicidir. Sıradan’Bakış açısı, bir mesaj sadece bir bayt koleksiyonudur ve normal bir kısa mesajdan veya bir müşteri içeren bir mesajdan herhangi bir şey olabilir’S sipariş kimliği veya hatta bir hata mesajı.
- Bir mesaj kuyruğu sisteminde, broker olarak bilinen birden fazla sunucu vardır. Bu brokerler son derece güvenilir ve ölçeklenebilir ve bir küme oluştururlar. Yapımcı tarafından bir mesaj üretildikten veya gönderildikten sonra, mesajları almak için tüketici mevcut olana kadar mesaj mesaj kuyruğunda saklanır.
- Tüketici veya alıcı mesajı almak için kullanılabilir olduğunda, kuyruk mesajı tüketiciye iter ve tüketicinin mesajı tamamen işlemesini bekler.
- Tüketici mesajı işledikten sonra, kuyruktan tamamen silinir.
Mesaj kuyruğu çözümleri
Mesaj kuyruğu için kullanılan birden fazla açık kaynak ve ücretsiz yazılım var.
Kafka: Apache Kafka’S Messaging System, iyi düşünülmüş bir yayın-abonelik sistemi ve çok yüksek miktarda veriyi işleyebilen bir kuyruk sistemidir. Kafka hataya toleranslıdır ve düğümleri çeşitli hizmetler aracılığıyla sürekli olarak izleyerek çalışmayı etkili hale getirir.
Tavşan MQ: Rabbitmq, başlangıçta gelişmiş mesaj kuyruğu protokolünü (AMQP) uygulayan en çok kullanılan açık kaynaklı mesajlaşma komisyoncusu sistemlerinden biridir. Kuyruklar bu sistemde tek bir iş parçacığıdır ve bir kuyruk en fazla 50.000 mesajı işleyebilir.
Amazon SQS: Amazon Basit kuyruk hizmeti, mesaj kuyruklarını korumalarını gerektirmeden çeşitli mikro hizmetleri ve uygulamaları ayırmak için kullanılan dağıtılmış bir mesaj kuyruğu sistemidir. Amazon SQS ayrıca, kullanıcıların ortak programlama dillerini kullanarak erişebilecekleri bir web hizmeti API’sı da sağlar.
Activemq: ActiveMQ, Java’da yazılmış başka bir mesaj broker sistemidir ve tam bir Java Mesaj Hizmeti istemcisine sahiptir. Yerleşik Ajax ve dinlenme desteği vardır ve AMQP, MQTT, Stomp, vb. Gibi çeşitli protokolleri destekler.
WhatsApp mesajlarınızı nasıl sunar?
WhatsApp’ta mesajların sıraya alındığına başlamadan önce’Uygulamanın kendisini anlayın. Erlang programlama dili kullanılarak kodlanan WhatsApp, aylık yaklaşık 2 milyar kullanıcı ile en çok kullanılan. WhatsApp, iki taraf arasındaki anlık mesajları kolaylaştırmak için açık kaynaklı genişletilebilir mesajlaşma ve varlık protokolünü (XMPP) kullanır. Başlangıçta WhatsApp, ejabbered sunucuyu kullanarak başladı. Günlük bu kadar yüksek kullanıcı ile sunucuların yükü verimli bir şekilde kullanması ve sistemin güvenilir olması önemlidir. Yıllar içinde, kod yeniden yapılandırıldı, XMPP’den dahili olarak tasarlanmış bir protokole geçti ve optimum sunucu performansını iyileştirmek ve elde etmek için bazı temel bileşenleri değiştirdi.
Bir mesaj gönderdiğinizde ve ne zaman, bu mesajları almak için alıcı yeniden bağlanana kadar sunucuda sıraya girer. Öyleyse arkadaşına mesaj attığınızda ve yapmazlarsa’t mesajları almak için internet erişimine sahip olun, bu mesajlar WhatsApp sunucularında kuyruklardır ve bu işlem “mağaza ve ileri” mekanizma. Yalnızca alıcı mesajları kabul ettiğinde, sunucudan silinir ve kuyruktan silinir. Daha sonra, alıcının İnternet bağlantısı olduğunda, bu mesajlar onlara teslim edilir veya alıcı tarafından alınır. Alıcı nihayet mesajın alındığını kabul ettiğinde, mesajın başarılı bir şekilde alınması WhatsApp Server’a geri gönderilir ve bu, mesajlarınızın yanındaki çift kene işaretini gördüğünüz zamandır.
Bu veri yapıları uzun sürüyor ve bunu iyi anlamak sizi uzun bir yoldan alacaktır. Bu yüzden öğretmeniniz bir dahaki sefere veri yapılarını tartışmaya başladığında, orada iyi dikkat edin. Evet? Tamam?
Peki, o zaman bir dahaki sefere görüşürüz!