İlk realtime olayınızı üç adımda gönderin.
Backend'iniz kısa ömürlü token üretir, istemci SDK ile bağlanır ve Publish API olayı doğru kullanıcıya iletir.
art_live_... biçimindeki API anahtarı yalnızca sunucuda tutulur. Tarayıcıya veya mobil uygulamaya eklenmez; istemci yalnızca kısa ömürlü connection token alır.
Pilot tenant ve API anahtarı
Antadu şu an davetli pilot aşamasındadır. Yönetim panelinde tenant'ınızı seçin ve yalnızca gerekli kapsamlarla bir server-side credential oluşturun:
connection-tokens:createevents:publishPanel girişi Cloudflare Access ile korunur. Pilot hesabınız tanımlı değilse giriş ekranı erişim vermeyecektir.
Davetli yönetim panelini aç ↗Backend'inizden token üretin
Kullanıcı kendi uygulamanızda oturum açtıktan sonra backend'iniz Control API'yi çağırır. Dönen accessToken ve expiresAt değerlerini istemciye iletin.
POST https://api.antadurt.com/api/v1/connection-tokens
X-Antadu-Api-Key: art_live_...
Content-Type: application/json
{
"userId": "user-42",
"deviceId": "web-chrome",
"topics": ["orders/user-42"],
"canAcknowledge": true,
"canReadMissedEvents": true
}SDK ile Gateway'e bağlanın
SDK token sağlayıcınızı her negotiate ve reconnect döngüsünde yeniden çağırır; abonelikleri geri yükler ve bağlantı durumunu sizin için yönetir.
TypeScript / JavaScript
Web uygulamaları ve framework bağımsız istemciler.
npm install @antadu/realtimeimport { AntaduRealtimeClient } from "@antadu/realtime";
const realtime = new AntaduRealtimeClient({
endpoint: "https://realtime.antadurt.com",
tokenProvider: () => fetch("/api/realtime-token", { method: "POST" })
.then(response => {
if (!response.ok) throw new Error("Token alınamadı.");
return response.json();
}),
missedEvents: { userId: "user-42" }
});
realtime.on("order.updated", event => updateOrder(event.data));
await realtime.subscribe("orders/user-42");
await realtime.connect();Angular 22
Signal ve Observable tabanlı Angular entegrasyonu.
npm install @antadu/realtime @antadu/realtime-angularprovideAntaduRealtime({
autoConnect: true,
client: {
endpoint: "https://realtime.antadurt.com",
tokenProvider: () => fetch("/api/realtime-token", { method: "POST" })
.then(response => response.json()),
missedEvents: { userId: "user-42" }
}
})
// Component veya serviste
protected readonly realtime = inject(AntaduRealtimeService);
protected readonly orders$ = this.realtime.eventsOf("order.updated");.NET 10
Backend, worker, masaüstü ve servis uygulamaları.
dotnet add package Antadu.Realtime.Client --version 0.1.0using Antadu.Realtime.Client;
await using var realtime = new AntaduRealtimeClient(new()
{
Endpoint = new Uri("https://realtime.antadurt.com"),
TokenProvider = tokenService.GetConnectionTokenAsync,
MissedEvents = new AntaduMissedEventOptions { UserId = "user-42" }
});
using var handler = realtime.On(
"order.updated",
(message, cancellationToken) =>
{
UpdateOrder(message.Data);
return ValueTask.CompletedTask;
});
await realtime.SubscribeAsync("orders/user-42");
await realtime.ConnectAsync();Olayı backend'inizden yayınlayın
Idempotency-Key, aynı iş olayının yanlışlıkla iki kez yayınlanmasını önler. target alanıyla kullanıcı, topic, grup veya role hedefleyebilirsiniz.
POST https://publish.antadurt.com/api/v1/events
X-Antadu-Api-Key: art_live_...
Idempotency-Key: order-981-shipped
Content-Type: application/json
{
"type": "order.updated",
"version": 1,
"target": { "type": "user", "value": "user-42" },
"delivery": { "mode": "durable" },
"data": { "orderId": "981", "status": "shipped" },
"metadata": { "source": "orders-api" }
}Canlı dashboard ve geçici durum güncellemeleri.
Kopuk istemcinin sonradan okuyacağı iş olayları.
İşlenmesi doğrulanması gereken kritik bildirimler.
Tek event type + tek hedef kullanıcı ile başlayıp panelden teslimatı doğrulayın.