reactReact Native

Once you've started receiving data from a device into your app, you can start sending this data to Terra's websocket server.

circle-info

Prerequisite

Before following the steps below, make sure you've followed the guide to stream data from a wearable device to your app

Streaming to Terra's Server

You'll have previously set up a local stream using startRealtime without a token. To also send data to Terra's server, pass a streaming token as the third argument:

import { getUserId, startRealtime, Connections, DataTypes } from 'react-native-terra-rt-react';

const startServerStreaming = async () => {
  // 1. Get the Terra user ID
  const { userId } = await getUserId();
  if (!userId) return;

  // 2. Get a streaming token from your backend
  const tokenResponse = await fetch('YOUR_BACKEND_URL/streaming-token', {
    method: 'POST',
    body: JSON.stringify({ userId }),
  });
  const { token } = await tokenResponse.json();

  // 3. Start streaming with the token — data goes to BOTH your app and Terra's server
  const dataTypes = [DataTypes.HEART_RATE, DataTypes.STEPS];
  await startRealtime(Connections.BLE, dataTypes, token);
};

The token parameter is the only difference from local-only streaming. When provided, the SDK opens a websocket connection to Terra and relays data in real time.

Listen for websocket connection status via the ConnectionUpdate event:

Your backend should generate the streaming token by calling:

Stream - Generate user token

post

Endpoint for generation of a token for a user (producer) connection

Authorizations
x-api-keystringRequired
dev-idstringRequired
Query parameters
idstringOptional

The ID of the user to generate a token for

Header parameters
dev-idstringRequired

your developer ID

x-api-keystringRequired

your API key

Responses
chevron-right
200

Successful response

application/json
tokenstringOptionalExample: OTYwNWFi5ZWQMTAxMjg0Y2Qw.gzrPzZcS3Gy8QDOxbiPRwu30PTB3VxW0eE
post
/auth/user

Last updated

Was this helpful?