Table of Contents

Class SdkConfigurationLiveFeed

Namespace
Sportradar.LiveData.Sdk.Services.SdkConfiguration.Sections
Assembly
Sportradar.LiveData.Sdk.dll

SDK configuration element where common live feed provider settings are stored (connectivity, rate limiters, etc.).

[DynamicConfigIgnoreClass]
public abstract class SdkConfigurationLiveFeed : ConfigurationElementFeed
Inheritance
SdkConfigurationLiveFeed
Derived
Inherited Members

Constructors

SdkConfigurationLiveFeed()

protected SdkConfigurationLiveFeed()

Properties

BookmakerId

Bookmaker (client) id.

[ConfigurationProperty("BookmakerId", IsRequired = false, DefaultValue = null)]
[CallbackValidator(Type = typeof(PropertyValidators), CallbackMethodName = "ValidateNullableInt")]
public int? BookmakerId { get; protected set; }

Property Value

int?

Remarks

This one will override the common settings.

ClientAliveMsgTimeout

Client alive message timeout.

[ConfigurationProperty("ClientAliveMsgTimeout", IsRequired = false, DefaultValue = "00:00:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[TimeSpanValidator]
public TimeSpan ClientAliveMsgTimeout { get; protected set; }

Property Value

TimeSpan

Remarks

TimeSpan.Zero means default timeout will be used. BEWARE: there is probably no need to change it unless the protocol updates.

EventRequestLimiterInterval

MatchRequest limiter (interval).

[ConfigurationProperty("EventRequestLimiterInterval", IsRequired = false, DefaultValue = "00:00:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
public TimeSpan EventRequestLimiterInterval { get; protected set; }

Property Value

TimeSpan

Remarks

When TimeSpan.Zero the default settings as appropriate for the server are used.

EventRequestLimiterNumber

MatchRequest limiter (number).

[ConfigurationProperty("EventRequestLimiterNumber", IsRequired = false, DefaultValue = 0)]
[DynamicConfigItem]
public int EventRequestLimiterNumber { get; protected set; }

Property Value

int

Remarks

EventRequestLimiterInterval must not be set to TimeSpan.Zero.

Hostname

Host name (overrides automatic defaults for servers)

[ConfigurationProperty("Hostname", IsRequired = false, DefaultValue = null)]
public string Hostname { get; protected set; }

Property Value

string

Insecure

Whether insecure version of the connection provider should be used that doesn't check the SSL server certificate thumbprint. Implicitly set by SafeMode.

[ConfigurationProperty("Insecure", IsRequired = false, DefaultValue = false)]
public bool Insecure { get; protected set; }

Property Value

bool

InvalidDataReconnectWait

Delay before we try reconnecting to server after we got invalid data.

[ConfigurationProperty("InvalidDataReconnectWait", IsRequired = false, DefaultValue = "00:00:10")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[PositiveTimeSpanValidator]
public TimeSpan InvalidDataReconnectWait { get; protected set; }

Property Value

TimeSpan

LoginLimiterInterval

Login limiter (interval).

[ConfigurationProperty("LoginLimiterInterval", IsRequired = false, DefaultValue = "00:00:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
public TimeSpan LoginLimiterInterval { get; protected set; }

Property Value

TimeSpan

Remarks

When TimeSpan.Zero the default settings as appropriate for the server are used.

LoginLimiterNumber

Login limiter (number).

[ConfigurationProperty("LoginLimiterNumber", IsRequired = false, DefaultValue = 0)]
[DynamicConfigItem]
public int LoginLimiterNumber { get; protected set; }

Property Value

int

Remarks

LoginLimiterInterval must not be set to TimeSpan.Zero.

MaxReconnectWait

Delay before we try reconnecting to server after we got disconnected (max, overrides automatic defaults for servers)

[ConfigurationProperty("MaxReconnectWait", IsRequired = false, DefaultValue = "00:00:15")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[PositiveTimeSpanValidator]
public TimeSpan MaxReconnectWait { get; protected set; }

Property Value

TimeSpan

MaxRequestEventIds

Max number of match ids that a client can specify in any request.

[ConfigurationProperty("MaxRequestEventIds", IsRequired = false, DefaultValue = 100)]
[DynamicConfigItem]
[IntegerValidator(MinValue = 1, MaxValue = 1000)]
public int MaxRequestEventIds { get; protected set; }

Property Value

int

MaxRequestTimeAllowance

Maximum amount of time for request response

[ConfigurationProperty("MaxRequestTimeAllowance", IsRequired = false, DefaultValue = "00:00:10")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
public TimeSpan MaxRequestTimeAllowance { get; protected set; }

Property Value

TimeSpan

MaxServerTimestampAge

Server timestamp is only usable to us if it is not outdated so that we can interpolate between two successive server timestamps.

[ConfigurationProperty("MaxServerTimestampAge", IsRequired = false, DefaultValue = "00:05:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[PositiveTimeSpanValidator]
public TimeSpan MaxServerTimestampAge { get; protected set; }

Property Value

TimeSpan

MaxTimeSkew

Maximum time difference between local time and server time. When detected time skew is over this limit the connection to the server will be immediately dropped and a reconnect attempted.

Usual time skew values should be:

  1. 10 minutes when no time synchronization is performed
  2. 5 seconds (if NTP protocol is used for time synchronization)
  3. TimeSpan.Zero means the setting is off (which is the default in SafeMode)
[ConfigurationProperty("MaxTimeSkew", IsRequired = false, DefaultValue = "00:00:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[TimeSpanValidator]
public TimeSpan MaxTimeSkew { get; protected set; }

Property Value

TimeSpan

Remarks

BEWARE! Low values might prevent a successful connection to the server or cause undesired disconnecting / reconnecting. That in turn might lead to connection blocking on the server side.

MinReconnectWait

Delay before we try reconnecting to server after we got disconnected (min, overrides automatic defaults for servers)

[ConfigurationProperty("MinReconnectWait", IsRequired = false, DefaultValue = "00:00:05")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[PositiveTimeSpanValidator]
public TimeSpan MinReconnectWait { get; protected set; }

Property Value

TimeSpan

Port

Port number (overrides automatic defaults for servers)

[ConfigurationProperty("Port", IsRequired = false, DefaultValue = 0)]
[IntegerValidator(MinValue = 0, MaxValue = 65535)]
public int Port { get; protected set; }

Property Value

int

ReceiveTimeout

Amount of time to wait for (socket) receive operation to complete successfully.

[ConfigurationProperty("ReceiveTimeout", IsRequired = false, DefaultValue = "00:00:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[TimeSpanValidator]
public TimeSpan ReceiveTimeout { get; protected set; }

Property Value

TimeSpan

Remarks

TimeSpan.Zero means default timeout will be used, negative value means use maximum value.

RequestLimiterInterval

Request limiter (interval).

[ConfigurationProperty("RequestLimiterInterval", IsRequired = false, DefaultValue = "00:00:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
public TimeSpan RequestLimiterInterval { get; protected set; }

Property Value

TimeSpan

Remarks

When TimeSpan.Zero the default settings as appropriate for the server are used.

RequestLimiterNumber

Request limiter (number).

[ConfigurationProperty("RequestLimiterNumber", IsRequired = false, DefaultValue = 0)]
[DynamicConfigItem]
public int RequestLimiterNumber { get; protected set; }

Property Value

int

Remarks

RequestLimiterInterval must not be set to TimeSpan.Zero.

RestartOnParseError

If true, the feed will reconnect on any parse error

[ConfigurationProperty("RestartOnParseError", IsRequired = false, DefaultValue = false)]
public bool RestartOnParseError { get; protected set; }

Property Value

bool

SSLThumbprint

Optional SSL server certificate thumbprint (overrides automatic defaults for servers)

[ConfigurationProperty("SSLThumbprint", IsRequired = false, DefaultValue = null)]
public string SSLThumbprint { get; protected set; }

Property Value

string

SendTimeout

Amount of time to wait for (socket) send operation to complete successfully.

[ConfigurationProperty("SendTimeout", IsRequired = false, DefaultValue = "00:00:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[TimeSpanValidator]
public TimeSpan SendTimeout { get; protected set; }

Property Value

TimeSpan

Remarks

TimeSpan.Zero means default timeout will be used, negative value means use maximum value.

ServerAliveMsgTimeout

Server alive message timeout.

[ConfigurationProperty("ServerAliveMsgTimeout", IsRequired = false, DefaultValue = "00:00:00")]
[DynamicConfigItem]
[TypeConverter(typeof(TimeSpanConverter))]
[TimeSpanValidator]
public TimeSpan ServerAliveMsgTimeout { get; protected set; }

Property Value

TimeSpan

Remarks

TimeSpan.Zero means default timeout will be used. BEWARE: there is probably no need to change it unless the protocol updates.

Test

Whether we should connect to development/test server instead of production one. Cannot be used for LiveOddsVfl and BetPal.

[ConfigurationProperty("Test", IsRequired = false, DefaultValue = false)]
public bool Test { get; protected set; }

Property Value

bool

Remarks

Note that test accounts are disabled on weekends.

TimeKeeperMaxSamples

TimeKeeper should keep that many samples.

[ConfigurationProperty("TimeKeeperMaxSamples", IsRequired = false, DefaultValue = 10)]
[DynamicConfigItem]
public int TimeKeeperMaxSamples { get; protected set; }

Property Value

int

UseSSL

Whether SSL sockets should be used for communication (overrides automatic defaults for servers). Cannot be used for LiveScout.

[ConfigurationProperty("UseSSL", IsRequired = false, DefaultValue = true)]
public bool UseSSL { get; protected set; }

Property Value

bool

Methods

IsReadOnly()

Override of ConfigurationElement.IsReadOnly, always returns false.

public override bool IsReadOnly()

Returns

bool

false