Websocket events

Real-time events are delivered to the SDK through a WebSocket. These events can be subscribed to using the following methods.

Subscribe to an event

sdk.on("profileUpdated", function (event) {
    console.log("profileUpdated", event);
});

Unsubscribe from an event

sdk.off("profileUpdated");

Complete list of events

Event Name

Event Payload

Description

conversationDeleted

IConversationDeletedEventData

Sent when a conversation is deleted.

conversationUndeleted

IConversationUndeletedEventData

Sent when a conversation is undeleted.

conversationUpdated

IConversationUpdatedEventData

Sent when a conversation is updated.

participantAdded

IParticipantAddedEventData

Sent when a participant is added to a conversation. When a conversation is created, this event also fires with the owner's profileId.

participantRemoved

IParticipantRemovedEventData

Sent when a participant is removed from a conversation. App needs to check whether the participant is the current user and locally remove the conversation from the UI.

participantTyping

IParticipantTypingEventData

Sent when a participant is typing in a conversation.

profileUpdated

IProfileUpdatedEvent

Sent when a user's profile is updated.

conversationMessageEvent

IConversationMessageEvent

This event is sent for all conversation message related activity. It encapsulates the sent, delivered and read events.

It’s defined like this so you can handle WebSocket conversation message events and events requested from sdk.services.appMessaging.getConversationEvents() seamlessly.

IConversationDeletedEventData

export interface IConversationDeletedEventData {
    conversationId: string;
    createdBy: string;
    timestamp: string;
}      

IConversationUndeletedEventData

export interface IConversationUndeletedEventData {
    conversationId: string;
    createdBy: string;
    timestamp: string;
}      

IConversationUpdatedEventData

export interface IConversationUpdatedEventData {
    conversationId: string;
    createdBy: string;
    name: string;
    description: string;
    roles: IConversationRoles;
    isPublic: boolean;
    timestamp: string;
}      

IParticipantAddedEventData

export interface IParticipantAddedEventData {
    conversationId: string;
    createdBy: string;
    profileId: string;
    role: string;
    timestamp: string;
}

IParticipantRemovedEventData

export interface IParticipantRemovedEventData {
    conversationId: string;
    createdBy: string;
    profileId: string;
    timestamp: string;
}

IParticipantTypingEventData

export interface IParticipantTypingEventData {
    conversationId: string;
    createdBy: string;
    profileId: string;
    timestamp: string;
}

IProfileUpdatedEvent

export interface IProfileUpdatedEvent {
    eTag: string;
    profile: any;
}

IConversationMessageEvent

This event encapsulates sent, delivered and read events.

export interface IConversationMessageEvent {
    eventId: string;
    // name field will be ["conversationMessage.sent" | "conversationMessage.read" | "conversationMessage.delivered"]
    name: string;
    conversationId: string;
    conversationEventId: number;
    // payload will differ based on event name ...
    payload: IMessageSentPayload | IMessageStatusUpdatePayload;
}

// payload for conversationMessage.sent
export interface IMessageSentPayload {
    messageId: string;
    metadata: any;
    context: any;
    parts: IMessagePart[];
    alert: IMessageAlert;
}

// payload for conversationMessage.delivered, conversationMessage.read
export interface IMessageStatusUpdatePayload {
    messageId: string;
    conversationId: string;
    profileId: string;
    timestamp: string;
}