Stream Methods
Real-time data streaming between the game and the backend.
StreamEmitter
When a stream starts, a StreamEmitter is returned. Use it to subscribe to events and stop the stream.
js
emitter.on(eventName, handler) // subscribe, returns unsubscribe fn
emitter.off(eventName, handler) // unsubscribe
emitter.stop(reason) // stop the stream
emitter.id // stream ID
emitter.stream // stream name| Event | Description |
|---|---|
data | New data arrived |
stream.accepted | Stream accepted by server |
stream.started | Stream started |
stream.end | Stream ended |
sendData
Sends data over the active game stream.
js
gametegra.sendData({ action: 'move', x: 10, y: 20 })csharp
await gametegra.sendData(gametegra.@params("action","move","x",10,"y",20));gdscript
var result = await gametegra.sendData({ 'action': 'move', 'x': 10, 'y': 20 })Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
params | object | Yes | Data payload to send. |
Response:
json
{
"onClientSuccess": true,
"onHostSuccess": true,
"data": {
"success": true
},
"errorMessage": null
}listenData
Starts listening to incoming game stream data. Returns an Emitter.
js
const emitter = await gametegra.listenData()
emitter.on('data', (payload) => { console.log(payload) })csharp
var emitter = await gametegra.listenData(true);
emitter.OnData += (payload) => Debug.Log(payload);gdscript
var emitter = await gametegra.listenData()
emitter.on('data', func(payload): print(payload))Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
params | object | No | Optional filter/options for the stream. |
Response:
json
{
"eventType": "data",
"payload": {
"action": "move",
"x": 10,
"y": 20
}
}connectGame
Connects to a named game stream and returns an Emitter for real-time events.
js
const emitter = await gametegra.connectGame('game-events')
emitter.on('data', (e) => handleEvent(e))csharp
var emitter = await gametegra.connectGame("game-events");
emitter.OnData += HandleEvent;gdscript
var emitter = await gametegra.connectGame('game-events')
emitter.on('data', func(e): handle_event(e))Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
streamName | string | Yes | Name of the game stream to connect to. |
options | object | No | Optional stream configuration. |
Response:
json
{
"eventType": "data",
"payload": {
"type": "player_joined",
"userId": "d2f2e862-7db2-46ce-9bc7-469739fcb618"
}
}stopStream
Stops an active stream by its channel key.
js
await gametegra.stopStream('room-chat-lobby')csharp
await gametegra.stopStream();gdscript
await gametegra.stopStream('room-chat-lobby')Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
channelKey | string | Yes | The channel key returned when the stream was started. |
Response:
json
{
"onClientSuccess": true,
"onHostSuccess": true,
"data": {
"success": true
},
"errorMessage": null
}getGyroscope
Starts streaming gyroscope sensor data from the device.
js
const gyro = await gametegra.getGyroscope({ normalize: true })
gyro.on('data', (d) => { console.log(d.x, d.y, d.z) })csharp
var gyro = await gametegra.getGyroscope();
gyro.OnData += (d) => UpdateRotation(d);gdscript
var gyro = await gametegra.getGyroscope({ 'normalize': true })
gyro.on('data', func(d): update_rotation(d))Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
normalize | boolean | No | When true, returns values in degrees instead of radians. |
Response:
json
{
"eventType": "data",
"payload": {
"x": 0.012,
"y": -0.004,
"z": 0.003
}
}getAccelerometer
Starts streaming accelerometer sensor data from the device.
js
const accel = await gametegra.getAccelerometer()
accel.on('data', (d) => { console.log(d.x, d.y, d.z) })csharp
var accel = await gametegra.getAccelerometer();
accel.OnData += (d) => UpdateAccel(d);gdscript
var accel = await gametegra.getAccelerometer()
accel.on('data', func(d): update_accel(d))Response:
json
{
"eventType": "data",
"payload": {
"x": 0.01,
"y": 0.98,
"z": 0.05
}
}