lilydocs
HTTP APIWebSocketConsumer
LILY WEBSOCKET3 dk okuma

Bağlantıdan uygulamaya.

Mesajlarınızı ve iş kurallarınızı yazın. Bağlantıları, bağımlılıkları ve uygulamanın yaşam döngüsünü Lily yönetsin.

REHBERE BAŞLARKEN

lily_websocket, namespace ve typed action'larla WebSocket uygulamaları geliştirmenizi sağlar. Rehberlerde bu yayımlanmış bileşene lilyrs facade'inin websocket feature'ı ve lilyrs::websocket import'larıyla erişiyoruz. Ortak DI container servisleri oluşturur; uygulama ise başlangıcı, bağlantı kabulünü, mesaj işleme scope'larını ve kapanışı yönetir.

Üç sahiplik düzeyi#

Bir uygulama birçok bağlantı kabul eder. Her bağlantı birçok mesaj taşır. Bu üç düzeyin ömrü birbirinden farklıdır:

Uygulama modeli
WsApp
  → Controller ve paylaşılan servisler
  → WebSocket bağlantısı: namespace, kimlik, oda üyelikleri
      → Mesaj: DI scope, middleware, guard, action, sonuç
      → Sonraki mesaj: yeni scope ve kimlik snapshot'ı

Controller her uygulamada bir kez oluşturulur. Bağlantı boyunca saklanan kimlik verisi owned bir snapshot'tır. Scoped servisler ise her mesaj için yeniden çözülür ve işlem tamamlanınca temizlenir. Bir Arc klonu bu kaynak sahipliğini değiştirmez.

Ne geliştirebilirsiniz?#

İhtiyaç Kullanılacak yol
Typed event ve ACK Controller, extractor, sonuçlar
Bağlantı güvenliği Origin, authentication, kimlik yenileme
Mesaj politikaları Middleware, guard, rate limiting
Canlı yayın Hedefler, odalar, principal, Redis backplane
Veri erişimi PostgreSQL, MongoDB ve cache
Dış sistemle bağlantı Rust client, outbound gateway
Uygulama ömründe iş Arka plan servisleri
Çalıştırma Health ve tracing, WSS, graceful shutdown

Bu rehberde framework'ün hazır mekanizmaları ile uygulamanızın sağlayacağı servisleri ayrı açıklıyoruz. Örneğin Lily identity middleware'i çalıştırır; JWT veya session doğrulamasını sizin verifier servisiniz yapar. Redis backplane canlı yayın taşır; kalıcı mesaj geçmişi ve offline inbox için ayrıca bir veri modeli gerekir.

Rehberi nasıl izlemelisiniz?#

Önce ilk uygulamayı çalıştırın ve tarayıcıdan bağlanın. Ardından yaşam döngüsü ve DI sayfalarıyla kaynakların kim tarafından yönetildiğini öğrenin. Bağlantı kabulü ve mesaj protokolünden sonra middleware, guard ve yayın örneklerine geçin.

HTTP ile ortak temel lily_injection, lily_injectable_derive ve lily_injection_registry crate'leridir. HTTP request scope'u ile WebSocket bağlantısını aynı ömür gibi düşünmeyin; WebSocket'te handshake, her mesaj ve lifecycle hook'ları ayrı scope kullanır.

Protokol ve kapsam#

Varsayılan taşıma HTTP/1.1 Upgrade ve Lily v2 envelope'dur. Bir raw WebSocket istemcisinin yalnızca { "text": "merhaba" } göndermesi yeterli değildir; mesajın route ve içerik türü zarf içinde belirtilir.

Binary içerik desteklenir. Multipart upload, dosya saklama, kaldığı yerden devam etme veya SSE bu server'ın hazır yüzeyleri değildir; ilgili HTTP rehberlerini veya kendi uygulama protokolünüzü kullanın. AsyncAPI desteği bu sürümde metadata kaydıyla sınırlıdır. Kaynak sürümü, varsayılanlar ve belge farkları referansta bulunur.

Bu sayfanın kaynakları v0.1.0

Anlatım, incelenen framework commit’ine dayanır.

HIZLI BAŞLANGIÇ
Dokümantasyon
Kaynak kod