Stream Methods
Stream sistemi, gercek zamanli veri akislari icin kullanilir. Iki ana yonu vardir:
- listenData - Platformdan gelen veriyi dinleme
- sendData - Platforma veri gonderme
Temel Kavramlar
StreamEmitter
Stream baslatildiginda bir StreamEmitter nesnesi doner. Bu nesne uzerinden event'leri dinleyebilir ve stream'i durdurabilirsiniz.
// StreamEmitter API
emitter.on(eventName, handler) // Event dinle, unsubscribe fonksiyonu doner
emitter.off(eventName, handler) // Event dinlemeyi birak
emitter.stop(reason) // Stream'i durdur
emitter.id // Stream ID
emitter.stream // Stream adiStream Event'leri
| Event | Aciklama |
|---|---|
data | Yeni veri geldiginde |
stream.accepted | Stream kabul edildiginde |
stream.started | Stream basladiginda |
stream.end | Stream sonlandiginda |
stream.error | Hata olustugunda |
error | Hata (kisa form) |
end | Bitis (kisa form) |
listenData
Bir stream'i dinlemeye baslar. Platformdan gelen gercek zamanli verileri alir.
const emitter = await gameTegra.listenData({
stream: 'game-events',
options: { roomId: 'room-123' }
})
// Veri geldiginde
emitter.on('data', (payload) => {
console.log('Yeni veri:', payload)
})
// Stream basladiginda
emitter.on('stream.started', (payload) => {
console.log('Stream basladi:', payload)
})
// Hata durumunda
emitter.on('error', (err) => {
console.error('Stream hatasi:', err)
})
// Stream bittiginde
emitter.on('end', () => {
console.log('Stream bitti')
})var emitter = await gameTegra.listenStreamData(
gameTegra.@params("stream", "game-events")
);
emitter.On("data", (payload) => {
Debug.Log($"Yeni veri: {payload}");
});
emitter.On("stream.started", (payload) => {
Debug.Log("Stream basladi");
});
// Stream'i durdurmak icin
await emitter.StopAsync("finished");var emitter = await gameTegra.listenData({
"stream": "game-events",
"options": { "roomId": "room-123" }
})
# Veri dinleme
emitter.on("data", func(payload):
print("Yeni veri: ", payload)
)
# Stream basladiysa
emitter.on("stream.started", func(payload):
print("Stream basladi: ", payload)
)
# Stream'i durdur
await emitter.stop("finished")Parametreler:
| Alan | Tip | Zorunlu | Aciklama |
|---|---|---|---|
| stream | string | Evet | Dinlenecek stream adi |
| channel | string | Hayir | Alternatif: kanal adi |
| name | string | Hayir | Alternatif: stream adi |
| topic | string | Hayir | Alternatif: topic adi |
| options | object | Hayir | Stream'e ozel ek parametreler |
Not:
stream,channel,name,topicalanlarindan biri kullanilabilir.
Donus Tipi: StreamEmitter
sendData
Platforma veri gonderir. Bir stream baslatir, veriyi push eder ve otomatik olarak kapatir.
const result = await gameTegra.sendData({
stream: 'player-action',
payload: {
action: 'move',
x: 100,
y: 200
}
})await gameTegra.sendStreamData(
gameTegra.@params(
"stream", "player-action",
"payload", gameTegra.@params("action", "move", "x", 100, "y", 200)
)
);var result = await gameTegra.sendData({
"stream": "player-action",
"payload": {
"action": "move",
"x": 100,
"y": 200
}
})Parametreler:
| Alan | Tip | Zorunlu | Aciklama |
|---|---|---|---|
| stream | string | Evet | Hedef stream adi |
| payload | object/array | Hayir | Gonderilecek veri |
| data | object/array | Hayir | Alternatif: gonderilecek veri |
| message | object | Hayir | Alternatif: tek mesaj |
| messages | array | Hayir | Alternatif: birden fazla mesaj |
| autoStop | boolean | Hayir | Gonderimden sonra stream'i otomatik kapat (varsayilan: true) |
| key | string | Hayir | Stream key |
connectGame
Oyun stream'ine baglanir. listenData'nin kisa yoludur.
const emitter = await gameTegra.connectGame('my-game-stream')
emitter.on('data', (payload) => {
console.log('Oyun verisi:', payload)
})var emitter = await gameTegra.connectToGameStream("my-game-stream");
emitter.On("data", (payload) => {
Debug.Log($"Oyun verisi: {payload}");
});var emitter = await gameTegra.connectGame("my-game-stream")
emitter.on("data", func(payload):
print("Oyun verisi: ", payload)
)Parametreler:
| Alan | Tip | Zorunlu | Aciklama |
|---|---|---|---|
| streamName | string | Evet | Baglanilacak oyun stream'inin adi |
Donus Tipi: StreamEmitter
stopStream
Aktif bir stream'i durdurur.
// Emitter uzerinden
emitter.stop('user_left')
// veya SDK uzerinden
await gameTegra.stopStream(emitter)
// veya key ile
await gameTegra.stopListeningStream('stream-key')// Emitter uzerinden
await emitter.StopAsync("user_left");
// veya SDK uzerinden
await gameTegra.stopStream();# Emitter uzerinden
await emitter.stop("user_left")
# veya SDK uzerinden
await gameTegra.stopStream("stream-id", "user_left")getGyroscope
Cihazin gyroscope (jiroskop) sensor verisini gercek zamanli olarak dinler.
const emitter = await gameTegra.getGyroscope()
emitter.on('data', (gyroData) => {
console.log('Gyro:', gyroData)
// { alpha: 0.5, beta: -0.3, gamma: 0.1 }
})var emitter = await gameTegra.getGyroscope();
emitter.On("data", (gyroData) => {
Debug.Log($"Gyro: {gyroData}");
});var emitter = await gameTegra.getGyroscope()
emitter.on("data", func(gyro_data):
print("Gyro: ", gyro_data)
)Donus Tipi: StreamEmitter - data event'i ile surekli gyroscope verisi alinir.
getAccelerometer
Cihazin accelerometer (ivmeolcer) sensor verisini gercek zamanli olarak dinler.
// Sadece JS SDK ve Godot'da mevcutvar emitter = await gameTegra.getAccelerometer()
emitter.on("data", func(accel_data):
print("Accelerometer: ", accel_data)
)Donus Tipi: StreamEmitter
Stream Yasam Dongusu
1. listenData() cagirilir
-> Platform'a stream istegi gider
2. "ready" event'i gelir
-> Promise resolve olur, StreamEmitter doner
3. "stream.accepted" -> Stream kabul edildi
4. "stream.started" -> Stream aktif, veri akmaya basladi
5. "data" -> Her yeni veri paketi icin tetiklenir
6. Bitis:
- emitter.stop() -> "end" event'i
- Platform tarafindan kapatilirsa -> "stream.end" event'i
- Hata olursa -> "stream.error" / "error" event'i