UNPKG

@dxfeed/dxlink-websocket-client

Version:

dxLink WebSocket Client allows to connect the remote dxLink WebSocket endpoint

68 lines (67 loc) 2.36 kB
export interface AuthMessage { type: 'AUTH'; channel: 0; token: string; } export type AuthState = 'AUTHORIZED' | 'UNAUTHORIZED'; export interface AuthStateMessage { type: 'AUTH_STATE'; channel: 0; state: AuthState; } export interface SetupMessage { type: 'SETUP'; channel: 0; version: string; keepaliveTimeout?: number; acceptKeepaliveTimeout?: number; } export interface KeepaliveMessage { type: 'KEEPALIVE'; channel: 0; } export interface ChannelRequestMessage { type: 'CHANNEL_REQUEST'; channel: number; service: string; parameters?: Record<string, unknown>; } export interface ChannelCancelMessage { type: 'CHANNEL_CANCEL'; channel: number; } export interface ChannelOpenedMessage { type: 'CHANNEL_OPENED'; channel: number; service: string; parameters?: Record<string, unknown>; } export interface ChannelClosedMessage { type: 'CHANNEL_CLOSED'; channel: number; } export type ErrorType = 'UNKNOWN' | 'UNSUPPORTED_PROTOCOL' | 'TIMEOUT' | 'UNAUTHORIZED' | 'INVALID_MESSAGE' | 'BAD_ACTION'; export interface ErrorMessage { type: 'ERROR'; channel: 0; error: ErrorType; message: string; } export interface ChannelErrorMessage { type: 'ERROR'; channel: number; error: ErrorType; message: string; } export interface ChannelPayloadMessage { type: string; channel: number; [key: string]: unknown; } export type ConnectionMessage = SetupMessage | KeepaliveMessage | AuthMessage | AuthStateMessage | ErrorMessage; export type DXLinkWebSocketMessage = SetupMessage | KeepaliveMessage | AuthMessage | AuthStateMessage | ErrorMessage | ChannelRequestMessage | ChannelCancelMessage | ChannelOpenedMessage | ChannelClosedMessage | ChannelPayloadMessage | ChannelErrorMessage; export declare const isConnectionMessage: (message: DXLinkWebSocketMessage) => message is ConnectionMessage; export type ChannelLifecycleMessage = ChannelOpenedMessage | ChannelClosedMessage | ChannelErrorMessage | ChannelRequestMessage | ChannelCancelMessage; export type ChannelMessage = ChannelLifecycleMessage | ChannelPayloadMessage; export declare const isChannelMessage: (message: DXLinkWebSocketMessage) => message is ChannelMessage; export declare const isChannelLifecycleMessage: (message: ChannelMessage) => message is ChannelLifecycleMessage;