UNPKG

@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
/** * 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