Bir sosyal medya sitesine gittiğinizde, heyecan verici bir şey yayınladığınızda ve orada oturup insanlar gönderinizi beğenip yorum yaptıkça bildirimlerin gelmesini beklediğinizi biliyor musunuz?
Bu en iyisi.
Size tekrar tekrar anında memnuniyet verir. Sisteminize küçük dozlarda dopamin gönderir. Kelimenin tam anlamıyla bağımlılık yapıyor.
Ve bunların hepsi WebSockets sayesinde mümkün .
En basit haliyle, bir WebSocket, bir istemci ve sunucu arasında doğrudan bir iletişim hattıdır. Twitter'ı sosyal medya kullanım örneğimiz olarak kullanalım. WebSocket bağlantısı, mobil uygulama (veya web sitesi) ile Twitter sunucuları arasında iki yönlü bir iletişimdir.
Biri gönderinizi beğendiğinde veya sizi retweetlediğinde, anında ve orada bilgilendirilmek istersiniz. Böylece sunucular, telefonunuza bir bildirim göndermek için sizinle birlikte bulunan doğrudan hattı kullanır. Olduğu anda ne olduğunu anlarsın.
Onlar gerekli mi? Teknik olarak hayır. Ancak, kullanıcı deneyimini geliştiriyor ve tüketicilerinizi memnun ediyor mu? Kesinlikle.
AWS'de bir WebSocket, bir API Gateway v2 kaynağıdır . İstemci ve sunucu arasındaki iki yönlü iletişimi destekler ve özel rotalar oluşturmanıza olanak tanır.
Bugün bir SAM şablonunda yazılmış bir WebSocket örneğini inceleyeceğiz. Sunucusuz bir uygulamayı 3. taraf hizmetlere ihtiyaç duymadan doğrudan AWS'ye dağıtmanın ne kadar kolay olduğu için bir SAM şablonu seçtim .
Başlamak için örnek depoya gidin ve dağıtım komutlarını izleyin. AWS CLI ve SAM CLI makinenizde zaten kuruluysa, 5 dakikadan daha kısa sürede hazır ve çalışır hale gelmiş olursunuz!
Herhangi bir API gibi, bir WebSocket de işlevselliği tetikleyen rotalara sahiptir. Bir WebSocket API'sinin en azından iki yolu olmalıdır:
Az önce dağıttığımız örnek WebSocket API'sinde iki ek yol var.
Dolayısıyla örneğimiz, bağlantı bazında belirli varlıklara WebSocket push bildirimlerini azaltmanın bir yolunu sunar.
WebSocket'inizi test etmek için,
WebsocketUriSAM dağıtımınızdan çıktı alabilir ve Postman'da ona bağlanabilirsiniz . Postman, WebSockets'e bağlanma dahil olmak üzere API'lerle ilgili her şey için tasarlanmış bir uygulamadır.
Sunucusuz geliştirme yapıyorsanız ve Postman gibi bir aracı aktif olarak kullanmıyorsanız şiddetle tavsiye ederim. Geliştirici deneyimini nasıl iyileştirebileceği ve dağıtım işlem hatlarınızı nasıl güçlendirebileceği hakkında birkaç blog yazısı yazdım .
Postman'de yeni WebSocket'inize bağlanmak için aşağıdaki adımları gerçekleştirin:
Headersekleyin
Sec-WebSocket-Protocol
websocket
Yine,
actionözellik API'ye hangi rotayı alacağını söylüyor ve özellik, örnek projede konuşlandırılmış abone
entityId lambda işlevine ilettiğimiz bir parametredir .
Artık WebSocket'e bağlı olduğumuza göre, bu mesajı Postman'a ekleyin ve Gönder düğmesine basın. Bitiş noktasına ulaşacak ve aboneliği kaydedecektir.
Bağlantı ve abonelik ile push bildirimimizi test etmeye hazırız!
Yapmak istediğimiz ilk şey, DynamoDB'ye bir göz atmak ve bağlantımızın ve aboneliğimizin kaydedildiğini doğrulamak. DynamoDB konsolundaki websocket tablosuna giderseniz , iki giriş olduğunu görürsünüz: bir bağlantı girişi ve bir abonelik girişi.
Bağlantımızı ve aboneliğimizi onayladığımıza göre artık manuel olarak bir mesaj eklemek için EventBridge konsoluna geçebiliriz .
AWS'ye aktardığımız örnek projede, anında iletme bildirimleri bir EventBridge olayı tarafından tetiklenir. Olay, bir lambda tarafından açılan bir SQS kuyruğuna eklenir. Lambda işlevi, etkinlikte sağlanan tüm abonelikleri arar ve tüm abonelere
entityIdanında iletme bildirimi gönderir.
Etkinliği manuel olarak göndermek için EventBridge konsolundaki Olayları Gönder düğmesini tıklayın ve bu ekran görüntüsünde açıklandığı gibi aşağıdaki ayrıntıları ekleyin
Gönder düğmesine bastığınızda, bildirim süreci tetiklenecek ve Postacıdaki bağlantınıza bir push gönderilecektir.
Postacıya dönersek, Merhaba dünya mesajımızın alındığını görebiliriz!
Gerçek bir dünya senaryosunda, işletmenin tüm aboneleri
myTestEntityIdbizim aldığımız mesajı alırdı. Süper havalı!
Bugünkü kılavuzda, bir WebSocket'i oluşturan parçalar hakkında bilgi edindik ve abonelikler ve bildirimlerle hızlı bir başlangıç elde ettik.
Önümüzdeki haftalarda, bir Async API özelliği aracılığıyla kimlik doğrulama, özel etki alanları ve olayları tanımlamanın yollarını açıklayan bir WebSocket serisinde gönderiler oluşturacağım .
Bu kodu dilediğiniz gibi kullanmaktan çekinmeyin. Tam olarak üretime hazır değil, hata işleme durumları ve yeniden deneme mekanizmaları gerektiriyor, ancak neredeyse orada. Bir AWS WebSocket API ile birlikte gelen tüm hareketli parçaları göstermeyi amaçlamıştır.
WebSockets ile keşfedilecek pek çok şey var ve ben bir asenkron 2022'de macerama devam ederken size yol göstermek için burada olacağım .
Bilinç nedir? Yüzyıllardır filozofların ve bilim adamlarının kafasını karıştıran bir sorudur. Bazıları bunun bedenlerimizden bağımsız olarak gerçekten anlayamadığımız geçici bir şey olduğunu söylüyor.
Yıllık ortalama 154 bin dolar maaş ve istikrarlı iş büyümesi ile şimdi blok zinciri geliştirmeyi öğrenmek için ideal zaman. Blok zinciri teknolojilerini oluşturmak ve geliştirmek için blok zinciri geliştiricileri, bilgisayar ağı, kriptografi, algoritmalar ve veri yapıları dahil olmak üzere çeşitli beceriler kullanır.
Yazan Jason Upton Bellingham'da alışılmadık derecede güneşli bir Mart öğleden sonra ve vardiyamın ilk teslimatı için arabamı Pizza Hut'ın kalabalık otoparkından çıkarmadan önce, günün ruh halini seçmek için Spotify'da gezinme ritüelime başlıyorum. Kararlar kararlar.
Fark Ettiniz mi Bilmiyorum - Ama Sistemlerimiz Çöküyor Bugün dünyaya baktığımda ürpertici bir şey görüyorum. Çöküş zaten burada - ve yayılıyor.
Yazardan bir söz: Aşağıdaki makalenin çoğunu 25 yaşında bir çocuk olarak, The Autobiography of Malcolm X'i hayatımda sadece ikinci kez okuduktan sonra yazdım. Bitirdiğimde o kadar ilham aldım ki, duygularımı önce el yazısıyla yazılmış bir günlük girişi olarak yazdım ve bu tam bir deneme haline geldi.
Eski One Direction üyesi, şimdiye kadar kendisi için oldukça solo kariyer yaptı. İlk ve ikinci sınıf albümleri ile (ikincisi burada bir inceleme bulunabilir), Harry Styles daha samimi ve keşifçi Harry'nin Evi ile etkilemek istiyor.