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