Biraz ders aldım (zor yoldan). Ubuntu AWS EC2 bulut hizmetlerinde (güçlü GPU'lar kullanır) çalışan bir numara hesaplama uygulaması yaptım ve ilerlemesini gerçek zamanlı olarak izlemek için bir ön uç yapmak istedim. Gerçek zamanlı verilere ihtiyaç duyması nedeniyle, güncellemeleri göndermek için web yuvalarına ihtiyacım olduğu açıktı.
Bir kavram kanıtıyla başladı ve harika çalıştı. Ancak daha sonra bunu halka açık hale getirmek istediğimizde, kullanıcı oturumu eklememiz gerekti, bu yüzden oturum açma özelliklerine ihtiyacımız vardı. Ve nasıl bakarsanız bakın, web soketinin hangi kullanıcıyla ilgilendiğini bilmesi gerekir, bu yüzden kullanıcıların kimliklerini doğrulamak için web soketlerini kullanma kısayolunu kullandık . Açık görünüyordu ve kullanışlıydı.
Bağlantıları güvenilir kılmak için biraz sessiz kalmak zorunda kaldık. Bazı ucuz websocket eğitimleriyle başladık, ancak uygulamamızın bağlantı kesildiğinde otomatik olarak yeniden bağlanamadığını keşfettik. Soket-io'ya geçtiğimizde bunların hepsi gelişti. Soket-io bir zorunluluktur!
Bütün bunları söyledikten sonra, dürüst olmak gerekirse, bazı harika soket-io özelliklerini kaçırdık. Socket-io'nun sunabileceği çok şey var ve eminim ki ilk tasarımınızda bunu hesaba katarsanız, bundan daha fazlasını elde edebilirsiniz. Bunun aksine, eski websockets'leri socket-io'nun websocket işlevselliği ile değiştirdik ve işte bu kadar. (oda yok, kanal yok, ...) Yeniden tasarım her şeyi daha güçlü hale getirebilirdi. Ama bunun için zamanımız yoktu. Bu, bir sonraki projemiz için hatırlanması gereken bir şey.
Daha sonra daha fazla veriyi (kullanıcı geçmişi, faturalar, işlemler, ...) depolamaya başladık . Hepsini bir AWS dynamodb veritabanında sakladık ve TEKRAR, CRUD işlemlerini ön uçtan arka uca iletmek için socket-io kullandık. Sanırım orada yanlış yola saptık. Bu bir hataydı.
- Çünkü Amazon'un bulut hizmetlerinin (AWS) RESTful uygulamalar için bazı harika yük dengeleme / ölçeklendirme araçları sunduğunu öğrendikten kısa bir süre sonra .
- Artık CRUD işlemlerinin tokalaşmalarını gerçekleştirmek için çok fazla kod yazmamız gerektiği izlenimine sahibiz .
- Son zamanlarda Paypal entegrasyonunu uyguladık. Onu çalıştırmayı başardık. Ancak yine, tüm öğreticiler bunu RESTful API'lerle yapıyor . Örneklerini web soketleriyle uygulamak için yeniden yazmak / yeniden düşünmek zorunda kaldık. Yine de oldukça hızlı çalışmasını sağladık. Ama akışa karşı çıktığımızı hissettiriyor .
Tüm bunları söyledikten sonra, önümüzdeki hafta canlı yayına gireceğiz. Oraya zamanında vardık, her şey çalışıyor. Ve hızlı, ama ölçeklenecek mi?