@signiant/media-shuttle-sdk-base
Version:
The base parent sdk behind other media shuttle sdks (e.g. media-shuttle-sdk)
95 lines • 3.04 kB
TypeScript
/**
* The following a sample of a response from the messaging config service:
{
"pubchannel": "21b08ae1-93f2-430c-b97b-a4e03eb2b1eb",
"subchannel": "b4d736cb-928d-4ee0-bb15-c7436e01d01a",
"pubtoken": "0d21242f-3f59-4ca3-a21e-15eaf9a46174",
"subtoken": "0d21242f-3f59-4ca3-a21e-15eaf9a46174",
"provider": "pubnub",
"providerinfo": {
"pubkey": "pub-c-9e097035-c549-4aa7-921c-6fe7b56ac570",
"subkey": "sub-c-7332afac-2fe2-11e5-9a04-0619f8945a4f",
"usessl": true,
"serviceurl": "pubsub.pubnub.com",
"timeout": 5,
"maxsize": 32000,
"heartbeat": 60,
"ttl": 0
},
"providers": [
{
"provider": "websocket",
"providerinfo": {
"range": 2,
"ports": [
10004,
20004
],
"serviceurl": "transfer.software",
"maxsize": 32000
}
},
{
"pubchannel": "21b08ae1-93f2-430c-b97b-a4e03eb2b1eb",
"subchannel": "b4d736cb-928d-4ee0-bb15-c7436e01d01a",
"pubtoken": "0d21242f-3f59-4ca3-a21e-15eaf9a46174",
"subtoken": "0d21242f-3f59-4ca3-a21e-15eaf9a46174",
"provider": "pubnub",
"providerinfo": {
"pubkey": "pub-c-9e097035-c549-4aa7-921c-6fe7b56ac570",
"subkey": "sub-c-7332afac-2fe2-11e5-9a04-0619f8945a4f",
"usessl": true,
"serviceurl": "pubsub.pubnub.com",
"timeout": 5,
"maxsize": 32000,
"heartbeat": 60,
"ttl": 0
}
}
]
}
*
* note the redundancy for the pubnub data. I suspect this is for the benefit of older apps that do not have
* "dual channel support."
*
* Anyway, this is leads to the complex generics interaction below.
*/
import EncryptionInfo from './EncryptionInfo';
export declare type ParamsBase<PI extends ProviderInfoBase> = {
provider: string;
providerinfo: PI;
};
export declare type ProviderInfoBase = {
serviceurl: string;
maxsize: number;
};
export declare type PubnubProviderInfo = ProviderInfoBase & {
pubkey: string;
subkey: string;
usessl: boolean;
timeout: number;
heartbeat: number;
ttl: number;
};
export declare type WebSocketProviderInfo = ProviderInfoBase & {
range: number;
ports: number[];
};
export declare type WebSocketParams = ParamsBase<WebSocketProviderInfo> & {
provider: string;
};
export declare type PubnubParams = ParamsBase<PubnubProviderInfo> & {
pubchannel: string;
subchannel: string;
pubtoken: string;
subtoken: string;
provider: string;
channel?: string;
};
export declare type SingleChannelParams = PubnubParams | WebSocketParams;
export declare type MessagingConfig = PubnubParams & {
providers: SingleChannelParams[];
encryptionInfo?: EncryptionInfo;
sessionid?: string;
};
//# sourceMappingURL=MessagingConfig.d.ts.map