Overview

Each SDK connects to several LaunchDarkly web services. These include services for getting feature flag data via streaming or polling, and a service for storing analytics events. By default, the SDK connects directly to LaunchDarkly for these services.

If you are using the Relay Proxy, you must configure the SDK so that it connects to the Relay Proxy for these services instead.

If you use the Relay Proxy in proxy mode, you must know the base uniform resource identifier (URI) of your Relay Proxy instance. This is an http or https address with the hostname and port where you have deployed the Relay Proxy. In all of the code examples below, the Relay Proxy’s base URI is https://your-relay-proxy.com:8030, which is its default port.

Different SDKs have different ways of configuring the SDK. In some SDKs, you must set the base URI of each service to the Relay Proxy’s base URI, using a separate configuration property for each service but setting each one to the same value. In other SDKs, you can set the base URI for all services with a single configuration property.

The examples below show how to configure the SDK for each service. In most SDKs, you then need to pass the configuration in as a parameter when you initialize the client. To learn more, read Configuration.

The following examples also include configuring the events service. To learn more, read Deciding how to handle analytics events.

Details about each SDK’s configuration are available in the SDK-specific sections below:

Client-side SDKs

This feature is available in the following client-side SDKs:

.NET (client-side)

To connect the SDK to the Relay Proxy, use the ServiceEndpoints builder method and Components.ServiceEndpoints().RelayProxy to specify the base URI of your Relay Proxy:

C#
1var config = Configuration
2 .Builder("mobile-key-123abc", ConfigurationBuilder.AutoEnvAttributes.Enabled)
3 .ServiceEndpoints(Components.ServiceEndpoints()
4 .RelayProxy("https://your-relay-proxy.com:8030"))
5 .Build();

Android

To connect the SDK to the Relay Proxy, use the streamUri, pollUri, and eventsUri builder methods to specify the base URI of your Relay Proxy:

1LDConfig ldConfig = new LDConfig.Builder(AutoEnvAttributes.Enabled)
2 .mobileKey("mobile-key-123abc")
3 .serviceEndpoints(
4 Components.serviceEndpoints()
5 .relayProxy("https://your-relay-proxy.com:8030")
6 )
7 .build();

C++ (client-side)

To connect the SDK to the Relay Proxy, use RelayProxyBaseURL to set the base URI of your Relay Proxy:

C++ SDK v3 (native)
1auto config_builder = client_side::ConfigBuilder("mobile-key-123abc");
2config_builder.ServiceEndpoints().RelayProxyBaseURL("https://your-relay-proxy.com:8030");
3auto config = config_builder.Build();

To learn more, read ServiceEndpoints.

Electron

To connect the SDK to the Relay Proxy, set the streamUrl, baseUrl, and eventsUrl options to the base URI of your Relay Proxy:

1const options = {
2 streamUrl: 'https://your-relay-proxy.com:8030',
3 baseUrl: 'https://your-relay-proxy.com:8030',
4 eventsUrl: 'https://your-relay-proxy.com:8030'
5};

Flutter

To connect the SDK to the Relay Proxy, use the ServiceEndpoints configuration option to specify the base URI of your Relay Proxy:

1final config = LDConfig(
2 CredentialSource.fromEnvironment,
3 autoEnvAttributes.enabled,
4 serviceEndpoints: ServiceEndpoints.relayProxy('https://your-relay-proxy.com:8030')
5);

To learn more, read serviceEndpoints.

iOS

To connect the SDK to the Relay Proxy, set the streamUrl, baseUrl, and eventsUrl properties to the base URI of your Relay Proxy:

1var ldConfig = LDConfig(mobileKey: "mobile-key-123abc", autoEnvAttributes: .enabled)
2ldConfig.streamUrl = URL(string: "https://your-relay-proxy.com:8030")
3ldConfig.baseUrl = URL(string: "https://your-relay-proxy.com:8030")
4ldConfig.eventsUrl = URL(string: "https://your-relay-proxy.com:8030")
Relay Proxy compatibility with event payload compression

If you are using LaunchDarkly iOS SDK version 9.9 or greater and you choose to enable compression of event payloads, you must upgrade Relay Proxy to version 8.9 or greater. To learn more, read enableCompression and Configuring an SDK to use the Relay Proxy.

JavaScript

To connect the SDK to the Relay Proxy, set the streamUrl, baseUrl, and eventsUrl properties to the base URI of your Relay Proxy:

1const options = {
2 streamUrl: 'https://your-relay-proxy.com:8030',
3 baseUrl: 'https://your-relay-proxy.com:8030',
4 eventsUrl: 'https://your-relay-proxy.com:8030'
5};

Node.js (client-side)

To connect the SDK to the Relay Proxy, set the streamUrl, baseUrl, and eventsUrl properties to the base URI of your Relay Proxy:

1const options = {
2 streamUrl: 'https://your-relay-proxy.com:8030',
3 baseUrl: 'https://your-relay-proxy.com:8030',
4 eventsUrl: 'https://your-relay-proxy.com:8030'
5};

React Native

To connect the SDK to the Relay Proxy, set the streamUri, baseUri, and eventsUri properties to the base URI of your Relay Proxy:

1import { LDOptions } from '@launchdarkly/react-native-client-sdk'
2
3let options: LDOptions = {
4 streamUri: 'https://your-relay-proxy.com:8030',
5 baseUri: 'https://your-relay-proxy.com:8030',
6 eventsUri: 'https://your-relay-proxy.com:8030',
7};

In version 6.x and earlier, the config properties were named streamUri, pollUri, and eventsUri. They were renamed to streamUrl, pollUrl, and eventsUrl in version 7.0. In version 10.0, they are named streamUri, baseUri, and eventsUri. To learn more, read LDOptions.

Roku

The Relay Proxy only works with the Roku SDK in polling mode

The Relay Proxy works when the Roku SDK is in polling mode only. You cannot use the Relay Proxy if the Roku SDK is in streaming mode.

To connect the SDK to the Relay Proxy, use the setStreamURI, setAppURI, and setEventsURI methods to specify the base URI of your Relay Proxy:

BrightScript
1' for a legacy Roku application
2config = LaunchDarklyConfig("mobile-key-123abc")
3
4' for a SceneGraph Roku Application
5config = LaunchDarklyConfig("mobile-key-123abc", CLIENT_SCENEGRAPH_NODE)
6
7config.setStreamURI("https://your-relay-proxy.com:8030")
8config.setAppURI("https://your-relay-proxy.com:8030")
9config.setEventsURI("https://your-relay-proxy.com:8030")

Server-side SDKs

This feature is available for the following server-side SDKs:

.NET (server-side)

To connect the SDK to the Relay Proxy, use the ServiceEndpoints builder method and Components.ServiceEndpoints().RelayProxy to specify the base URI of your Relay Proxy:

1var config = Configuration.Builder("sdk-key-123abc")
2 .ServiceEndpoints(Components.ServiceEndpoints()
3 .RelayProxy("https://your-relay-proxy.com:8030"))
4 .Build();

C++ (server-side)

To connect the SDK to the Relay Proxy, use RelayProxyBaseURL to set the base URI of your Relay Proxy:

1auto config_builder = server_side::ConfigBuilder("sdk-key-123abc");
2config_builder.ServiceEndpoints().RelayProxyBaseURL("https://your-relay-proxy.com:8030");
3auto config = config_builder.Build();
4if (!config) {
5 /* an error occurred, config is not valid */
6}

To learn more, read ServiceEndpoints() in ConfigBuilder.

Erlang

To connect the SDK to the Relay Proxy, set the stream_uri, base_uri, and events_uri properties to the base URI of your Relay Proxy:

Erlang
1ldclient:start_instance("sdk-key-123abc", #{
2 stream_uri => "https://your-relay-proxy.com:8030",
3 base_uri => "https://your-relay-proxy.com:8030",
4 events_uri => "https://your-relay-proxy.com:8030"
5})

Go

To connect the SDK to the Relay Proxy, use the Config.ServiceEndpoints property and ldcomponents.RelayProxyEndpoints() to specify the base URI of your Relay Proxy:

Go
1// To use the Replay Proxy in proxy mode for both streaming and events:
2
3config := ld.Config{
4 ServiceEndpoints: ldcomponents.RelayProxyEndpoints(
5 "https://your-relay-proxy.com:8030"),
6}
7
8// Alternatively, to use the Relay Proxy in proxy mode for streaming,
9// but send events directly to LaunchDarkly, use:
10config := ld.Config{
11 ServiceEndpoints: ldcomponents.RelayProxyEndpointsWithoutEvents(
12 "https://your-relay-proxy.com:8030"),
13}
Relay Proxy compatibility with event payload compression

If you are using LaunchDarkly Go SDK version 7.6 or greater and you choose to enable compression of event payloads, you must upgrade Relay Proxy to version 8.9 or greater. To learn more, read EnableGzip and Configuring an SDK to use the Relay Proxy.

Haskell

To connect the SDK to the Relay Proxy, use configSetStreamURI, configSetBaseURI, and configSetEventsURI to specify the base URI of your Relay Proxy:

Haskell
1{-# LANGUAGE OverloadedStrings #-}
2
3import LaunchDarkly.Server.Config
4
5import Data.Function ((&))
6
7config :: Config
8config = (makeConfig "sdk-key-123abc")
9 & configSetStreamURI "https://your-relay-proxy.com:8030"
10 & configSetBaseURI "https://your-relay-proxy.com:8030"
11 & configSetEventsURI "https://your-relay-proxy.com:8030"
Relay Proxy compatibility with event payload compression

If you are using LaunchDarkly Haskell SDK version 4.4 or greater and you choose to enable compression of event payloads, you must upgrade Relay Proxy to version 8.9 or greater. To learn more, read configSetCompressEvents and Configuring an SDK to use the Relay Proxy.

Java

To connect the SDK to the Relay Proxy, use the serviceEndpoints builder method and Components.serviceEndpoints().relayProxy to specify the base URI of your Relay Proxy:

1LDConfig config = new LDConfig.Builder()
2 .serviceEndpoints(Components.serviceEndpoints()
3 .relayProxy("https://your-relay-proxy.com:8030"))
4 .build();

Lua

To connect the SDK to the Relay Proxy, use the serviceEndpoints property to specify the base URLs:

1local config = {
2 serviceEndpoints = {
3 streamingBaseURL = "https://your-relay-proxy.com:8030",
4 pollingBaseURL = "https://your-relay-proxy.com:8030",
5 eventsBaseURL = "https://your-relay-proxy.com:8030"
6 }
7}

To learn more about the configuration options, read clientInit.

Node.js (server-side)

To connect the SDK to the Relay Proxy, set the streamUri, baseUri, and eventsUri properties to the base URI of your Relay Proxy:

1import * as ld from '@launchdarkly/node-server-sdk';
2
3const options ld.LDOptions = {
4 streamUri: 'https://your-relay-proxy.com:8030',
5 baseUri: 'https://your-relay-proxy.com:8030',
6 eventsUri: 'https://your-relay-proxy.com:8030',
7};

PHP

To connect the SDK to the Relay Proxy, set the base_uri and events_uri properties to the base URI of your Relay Proxy:

PHP
1$client = new LaunchDarkly\LDClient("sdk-key-123abc",
2 [ "base_uri" => "https://your-relay-proxy.com:8030",
3 "events_uri" => "https://your-relay-proxy.com:8030" ]);

There is not a streaming service for the PHP SDK.

Python

To connect the SDK to the Relay Proxy, set the stream_uri, base_uri, and events_uri properties to the base URI of your Relay Proxy:

Python
1config = Config(sdk_key='sdk-key-123abc',
2 stream_uri="https://your-relay-proxy.com:8030",
3 base_uri="https://your-relay-proxy.com:8030",
4 events_uri="https://your-relay-proxy.com:8030")
Relay Proxy compatibility with event payload compression

If you are using LaunchDarkly Python SDK version 9.5 or greater and you choose to enable compression of event payloads, you must upgrade Relay Proxy to version 8.9 or greater. To learn more, set enable_event_compression in the ldclient.config module and read Configuring an SDK to use the Relay Proxy.

Ruby

To connect the SDK to the Relay Proxy, set the service endpoints to the base URI of your Relay Proxy:

Ruby
1config = LaunchDarkly::Config.new(
2 stream_uri: "https://your-relay-proxy.com:8030",
3 base_uri: "https://your-relay-proxy.com:8030",
4 events_uri: "https://your-relay-proxy.com:8030")
Relay Proxy compatibility with event payload compression

If you are using LaunchDarkly Ruby SDK version 8.7 or greater and you choose to enable compression of event payloads, you must upgrade Relay Proxy to version 8.9 or greater. To learn more, read compress_events and Configuring an SDK to use the Relay Proxy.

Rust

To connect the SDK to the Relay Proxy, use the ConfigBuilder and ServiceEndpointsBuilder to specify the base URI of your Relay Proxy:

Rust
1let config = ConfigBuilder::new("sdk-key-123abc")
2 .service_endpoints(
3 ServiceEndpointsBuilder::new().relay_proxy("https://your-relay-proxy.com:8030"),
4 )
5 .build();
Relay Proxy compatibility with event payload compression

If you are using LaunchDarkly Rust SDK version 2.4 or greater and you choose to enable compression of event payloads, you must upgrade Relay Proxy to version 8.9 or greater. To learn more, read compress_events and Configuring an SDK to use the Relay Proxy.

Built with