Skip to main content
Version: v1

DocumentDeltaConnection Class

Represents a connection to a stream of delta updates

Signature

export declare class DocumentDeltaConnection extends EventEmitterWithErrorHandling<IDocumentDeltaConnectionEvents> implements IDocumentDeltaConnection, IDisposable

Extends: EventEmitterWithErrorHandling<IDocumentDeltaConnectionEvents

Implements: IDocumentDeltaConnection, IDisposable

Constructors

Constructor Description
(constructor)(socket, documentId, logger, enableLongPollingDowngrades) Constructs a new instance of the DocumentDeltaConnection class

Static Properties

Property Type Description
eventsAlwaysForwarded string[]
eventsToForward string[]

Properties

Property Alerts Type Description
_disposed boolean Flag to indicate whether the DocumentDeltaConnection is expected to still be capable of sending messages. After disconnection, we flip this to prevent any stale messages from being emitted.
checkpointSequenceNumber number | undefined Last known sequence number to ordering service at the time of connection It may lap actual last sequence number (quite a bit, if container is very active). But it's best information for client to figure out how far it is behind, at least for "read" connections. "write" connections may use own "join" op to similar information, that is likely to be more up-to-date.
claims ITokenClaims Get the claims of the client who is sending the message
clientId string Get the ID of the client who is sending the message
details IConnected
disposed boolean
documentId string
earlyOpHandler (documentId: string, msgs: ISequencedDocumentMessage[]) => void
earlySignalHandler (msg: ISignalMessage) => void
existing boolean Get whether or not this is an existing document
hasDetails boolean
initialClients ISignalClient[] Get initial client list
initialMessages ISequencedDocumentMessage[] Get messages sent during the connection
initialSignals ISignalMessage[] Get signals sent during the connection
logger Deprecated ITelemetryLogger
maxMessageSize number Get the maximum size of a message before chunking is required
mode ConnectionMode Get the mode of the client
queuedMessages ISequencedDocumentMessage[]
queuedSignals ISignalMessage[]
serviceConfiguration IClientConfiguration Configuration details provided by the service
socket Socket
version string Semver of protocol being used with the service

Methods

Method Return Type Description
addTrackedListener(event, listener) void
createErrorObject(handler, error, canRetry) IAnyDriverError Error raising for socket.io issues
disconnect(socketProtocolError, reason) void Disconnect from the websocket.
dispose() void Disconnect from the websocket, and permanently disable this DocumentDeltaConnection.
disposeCore(socketProtocolError, err) void
emitMessages(type, messages) void
initialize(connectMessage, timeout) Promise<void>
submit(messages) void Submits a new delta operation to the server
submitCore(type, messages) void
submitSignal(message) void Submits a new signal to the server

Constructor Details

(constructor)

Constructs a new instance of the DocumentDeltaConnection class

Signature
protected constructor(socket: Socket, documentId: string, logger: ITelemetryLogger, enableLongPollingDowngrades?: boolean);

Parameters

Parameter Modifiers Type Description
socket Socket websocket to be used
documentId string ID of the document
logger ITelemetryLogger for reporting telemetry events
enableLongPollingDowngrades optional boolean allow connection to be downgraded to long-polling on websocket failure

Property Details

_disposed

Flag to indicate whether the DocumentDeltaConnection is expected to still be capable of sending messages. After disconnection, we flip this to prevent any stale messages from being emitted.

Signature
protected _disposed: boolean;

Type: boolean

checkpointSequenceNumber

Last known sequence number to ordering service at the time of connection It may lap actual last sequence number (quite a bit, if container is very active). But it's best information for client to figure out how far it is behind, at least for "read" connections. "write" connections may use own "join" op to similar information, that is likely to be more up-to-date.

Signature
checkpointSequenceNumber: number | undefined;

Type: number | undefined

claims

Get the claims of the client who is sending the message

Signature
get claims(): ITokenClaims;

Type: ITokenClaims

clientId

Get the ID of the client who is sending the message

Signature
get clientId(): string;

Type: string

details

Signature
get details(): IConnected;

Type: IConnected

disposed

Signature
get disposed(): boolean;

Type: boolean

documentId

Signature
documentId: string;

Type: string

earlyOpHandler

Signature
protected earlyOpHandler: (documentId: string, msgs: ISequencedDocumentMessage[]) => void;

Type: (documentId: string, msgs: ISequencedDocumentMessage[]) => void

earlySignalHandler

Signature
protected earlySignalHandler: (msg: ISignalMessage) => void;

Type: (msg: ISignalMessage) => void

eventsAlwaysForwarded

Signature
static readonly eventsAlwaysForwarded: string[];

Type: string[]

eventsToForward

Signature
static readonly eventsToForward: string[];

Type: string[]

existing

Get whether or not this is an existing document

Signature
get existing(): boolean;

Type: boolean

hasDetails

Signature
protected get hasDetails(): boolean;

Type: boolean

initialClients

Get initial client list

Signature
get initialClients(): ISignalClient[];

Type: ISignalClient[]

initialMessages

Get messages sent during the connection

Signature
get initialMessages(): ISequencedDocumentMessage[];

Type: ISequencedDocumentMessage[]

initialSignals

Get signals sent during the connection

Signature
get initialSignals(): ISignalMessage[];

Type: ISignalMessage[]

logger

This API is deprecated and will be removed in a future release.
  • Implementors should manage their own logger or monitoring context
Signature
protected get logger(): ITelemetryLogger;

Type: ITelemetryLogger

maxMessageSize

Get the maximum size of a message before chunking is required

Signature
get maxMessageSize(): number;

Type: number

mode

Get the mode of the client

Signature
get mode(): ConnectionMode;

Type: ConnectionMode

queuedMessages

Signature
protected readonly queuedMessages: ISequencedDocumentMessage[];

Type: ISequencedDocumentMessage[]

queuedSignals

Signature
protected readonly queuedSignals: ISignalMessage[];

Type: ISignalMessage[]

serviceConfiguration

Configuration details provided by the service

Signature
get serviceConfiguration(): IClientConfiguration;

Type: IClientConfiguration

socket

Signature
protected readonly socket: Socket;

Type: Socket

version

Semver of protocol being used with the service

Signature
get version(): string;

Type: string

Method Details

addTrackedListener

Signature
protected addTrackedListener(event: string, listener: (...args: any[]) => void): void;

Parameters

Parameter Type Description
event string
listener (...args: any[]) => void

createErrorObject

Error raising for socket.io issues

Signature
protected createErrorObject(handler: string, error?: any, canRetry?: boolean): IAnyDriverError;

Parameters

Parameter Modifiers Type Description
handler string
error optional any
canRetry optional boolean

Returns

Return type: IAnyDriverError

disconnect

Disconnect from the websocket.

Signature
protected disconnect(socketProtocolError: boolean, reason: IAnyDriverError): void;

Parameters

Parameter Type Description
socketProtocolError boolean true if error happened on socket / socket.io protocol level (not on Fluid protocol level)
reason IAnyDriverError reason for disconnect

dispose

Disconnect from the websocket, and permanently disable this DocumentDeltaConnection.

Signature
dispose(): void;

disposeCore

Signature
protected disposeCore(socketProtocolError: boolean, err: IAnyDriverError): void;

Parameters

Parameter Type Description
socketProtocolError boolean
err IAnyDriverError

emitMessages

Signature
protected emitMessages(type: string, messages: IDocumentMessage[][]): void;

Parameters

Parameter Type Description
type string
messages IDocumentMessage[][]

initialize

Signature
protected initialize(connectMessage: IConnect, timeout: number): Promise<void>;

Parameters

Parameter Type Description
connectMessage IConnect
timeout number

Returns

Return type: Promise<void>

submit

Submits a new delta operation to the server

Signature
submit(messages: IDocumentMessage[]): void;

Parameters

Parameter Type Description
messages IDocumentMessage[]

submitCore

Signature
protected submitCore(type: string, messages: IDocumentMessage[]): void;

Parameters

Parameter Type Description
type string
messages IDocumentMessage[]

submitSignal

Submits a new signal to the server

Signature
submitSignal(message: IDocumentMessage): void;

Parameters

Parameter Type Description
message IDocumentMessage signal to submit