lilydocs
HTTP APIWebSocketConsumer
Temeller2 dk okuma

Configuration ve secrets

Merkezi lily.toml ayarlarını, environment override’larını ve builder tercihlerinin önceliğini açıkça belirleyin.

WebSocket uygulaması ConfigService üzerinden immutable config snapshot'ı kullanır. Adresin builder'dan gelmesi ile bütün server politikasının builder'dan gelmesi farklı tercihlerdir.

Config üzerinden başlayın#

lily.toml
[websocket]
enabled = true
host = "127.0.0.1"
port = 8081
endpoint_path = "/ws"
allowed_origins = ["http://localhost:3000"]
supported_protocols = ["lily.v2"]
require_subprotocol = true
message_timeout_secs = 30
message_cleanup_timeout_secs = 10
connection_middleware_timeout_secs = 10
connection_lifecycle_timeout_secs = 30
inbound_queue_capacity = 16
inbound_queue_max_bytes = 1048576
outbound_queue_capacity = 256
outbound_queue_max_bytes = 1048576

[lifecycle]
shutdown_timeout_secs = 30
src/main.rs
use lilyrs::websocket::WsAppBuilder;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let app = WsAppBuilder::default().build().await?;
    app.start().await?;
    Ok(())
}

Uygulamanın controller modüllerini de derlemeye dahil edin. Public config başlangıcı default()'tır. config_backed() private bir yardımcıdır. Merkezi enabled varsayılanı false olduğundan config tabanlı build için açıkça etkinleştirme gerekir.

Builder öncelikleri#

Seçim Etki
default() Merkezi adres ve server politikasını kullanır
new("127.0.0.1:8081") Adresi seçer ve listener'ı etkin sayar; diğer politikalar config'ten gelir
.config(ServerConfig { ... }) ServerConfig nesnesinin tamamını seçer; merkezi alanlarla tek tek merge etmez
.rustls_config(tls) Listener'ın TLS politikasını seçer
.tls_disabled() Builder'daki TLS tercihini kaldırır
.secret_resolver(resolver) App'in kurduğu ConfigService için secret kaynağı sağlar
.container(container) Önceden hazırlanmış dış container'ı kullanır
.add_background_service::<T>() Worker'ı uygulamanın başlatma ve kapanış sahipliğine kaydeder

.container(...) ile .secret_resolver(...) birleştirilmez; dış container kendi ConfigService'inin sahibidir. Config dosyasında WebSocket sertifika alanı yazmak otomatik TLS kurulumu sağlamaz; WSS builder üzerinden seçilir.

Worker kaydı config dosyasından kendiliğinden oluşmaz; builder'da açıkça yapılır. Arka plan servisleri, ortak shutdown bütçesini ve iş başına DI scope kullanımını açıklar.

Environment ve secrets#

Sıra TOML → LILY__... environment override → izinli exact secret/file referansları → doğrulama → snapshot şeklindedir. Örneğin LILY__WEBSOCKET__PORT=8082, config yolunun portunu değiştirir; explicit new(...) adresini değiştirmez.

Özel config yolu için LILY_CONFIG_PATH ve LILY_CONFIG_MODE birlikte verilir. Mod development, test veya production olabilir. Development'ta eksik varsayılan dosyayla default kullanımı, production'da eksik dosyanın kabul edileceği anlamına gelmez. Secret referansı yalnızca desteklenen alanda ve gerçek resolver ile çalışır; interpolation veya bütün alanlarda otomatik secret çözümü varsaymayın.

Canlı değişiklikler ve limitler#

Config snapshot'ı yaşayan listener'ı kendiliğinden yeniden kurmaz. Secret rotation ve sertifika yenileme uygulamanın çalışma planına aittir. Timeout ve queue değerlerini deadline, backpressure ve referans sayfalarındaki farklı bütçelere göre ayarlayın.

Bu sayfanın kaynakları v0.1.0

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

HIZLI BAŞLANGIÇ
Dokümantasyon
Kaynak kod