Skip to content

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.

js
// 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 adi

Stream Event'leri

EventAciklama
dataYeni veri geldiginde
stream.acceptedStream kabul edildiginde
stream.startedStream basladiginda
stream.endStream sonlandiginda
stream.errorHata olustugunda
errorHata (kisa form)
endBitis (kisa form)

listenData

Bir stream'i dinlemeye baslar. Platformdan gelen gercek zamanli verileri alir.

js
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')
})
csharp
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");
gdscript
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:

AlanTipZorunluAciklama
streamstringEvetDinlenecek stream adi
channelstringHayirAlternatif: kanal adi
namestringHayirAlternatif: stream adi
topicstringHayirAlternatif: topic adi
optionsobjectHayirStream'e ozel ek parametreler

Not: stream, channel, name, topic alanlarindan biri kullanilabilir.

Donus Tipi: StreamEmitter


sendData

Platforma veri gonderir. Bir stream baslatir, veriyi push eder ve otomatik olarak kapatir.

js
const result = await gameTegra.sendData({
  stream: 'player-action',
  payload: {
    action: 'move',
    x: 100,
    y: 200
  }
})
csharp
await gameTegra.sendStreamData(
    gameTegra.@params(
        "stream", "player-action",
        "payload", gameTegra.@params("action", "move", "x", 100, "y", 200)
    )
);
gdscript
var result = await gameTegra.sendData({
    "stream": "player-action",
    "payload": {
        "action": "move",
        "x": 100,
        "y": 200
    }
})

Parametreler:

AlanTipZorunluAciklama
streamstringEvetHedef stream adi
payloadobject/arrayHayirGonderilecek veri
dataobject/arrayHayirAlternatif: gonderilecek veri
messageobjectHayirAlternatif: tek mesaj
messagesarrayHayirAlternatif: birden fazla mesaj
autoStopbooleanHayirGonderimden sonra stream'i otomatik kapat (varsayilan: true)
keystringHayirStream key

connectGame

Oyun stream'ine baglanir. listenData'nin kisa yoludur.

js
const emitter = await gameTegra.connectGame('my-game-stream')

emitter.on('data', (payload) => {
  console.log('Oyun verisi:', payload)
})
csharp
var emitter = await gameTegra.connectToGameStream("my-game-stream");

emitter.On("data", (payload) => {
    Debug.Log($"Oyun verisi: {payload}");
});
gdscript
var emitter = await gameTegra.connectGame("my-game-stream")

emitter.on("data", func(payload):
    print("Oyun verisi: ", payload)
)

Parametreler:

AlanTipZorunluAciklama
streamNamestringEvetBaglanilacak oyun stream'inin adi

Donus Tipi: StreamEmitter


stopStream

Aktif bir stream'i durdurur.

js
// Emitter uzerinden
emitter.stop('user_left')

// veya SDK uzerinden
await gameTegra.stopStream(emitter)
// veya key ile
await gameTegra.stopListeningStream('stream-key')
csharp
// Emitter uzerinden
await emitter.StopAsync("user_left");

// veya SDK uzerinden
await gameTegra.stopStream();
gdscript
# 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.

js
const emitter = await gameTegra.getGyroscope()

emitter.on('data', (gyroData) => {
  console.log('Gyro:', gyroData)
  // { alpha: 0.5, beta: -0.3, gamma: 0.1 }
})
csharp
var emitter = await gameTegra.getGyroscope();

emitter.On("data", (gyroData) => {
    Debug.Log($"Gyro: {gyroData}");
});
gdscript
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.

js
// Sadece JS SDK ve Godot'da mevcut
gdscript
var 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