@555platform/555-js-sdk
v4.4.27
Published
JavaScript SDK for 555 Platform
Downloads
164
Readme
555-js-sdk
555 JavaScript SDK
555-js-sdk provides simple APIs to build chat based applications using 555 Platform.
Getting started
npm i @555platform/555-js-sdk
Usage - Examples
import SDK from '@555platform/555-js-sdk';
Make connection using
555token
,ConnectOptions
andMessageAdapter
const sdk = SDK.Client.create( userData.access_token, { url: '', automaticReconnect: true }, new SDK.QueuedMessageAdapter<SDK.MessagePayload>() ); sdk.chat.connect();
Get list of rooms current user is a member of.
const iter: SDK.Paginator< SDK.RoomDescriptor, SDK.RoomIterator > = await sdk.chat.getUserRoomDescriptors(0, 0);
Callbacks and Events from SDK.
SDK.Client.Chat.on( SDK.CMF.ChatServerEventTypes.RoomAdded, this.onRoomsChanged ); SDK.Client.Chat.on( SDK.CMF.ChatServerEventTypes.UserJoinedRoom, this.onRoomsChanged ); SDK.Client.Chat.on( SDK.CMF.ChatServerEventTypes.UserLeftRoom, this.onRoomsChanged ); SDK.Client.Chat.on( SDK.CMF.ChatServerEventTypes.RoomReceivedMessage, this.onRoomReceivedMessage ); sdk.onTokenAboutToExpire(() => // renewToken is a function you need to implement to fetch new token // from application server renewToken(renewedToken => sdk.updateToken(renewedToken)); );
APIs
Connect
Methods
<static> create(accessToken, ConnectOptions, messageAdapter)
Factory method to create and initialize Client
Parameters
Name | Type | Argument | Description --- | --- | --- | --- accessToken | string | required | 555 Platform access token options | ConnectOptions | required | Options to customize 555 Connection behavior messageAdapter | MessageAdapter | required | Message adapter class conforming to MessageAdapter interface
Returns
Type
Client|Error
updateToken(accessToken)
Updates current token. Used to update Client with refreshed token.
Parameters
Name | Type | Argument | Description --- | --- | --- | --- accessToken | string | required | 555 Platform access token
Returns
Type
void
connect()
Connect to platform.
Parameters
Name | Type | Argument | Description --- | --- | --- | --- options | ConnectOptions | optional | Connection options
Returns
Type
Promise.<Client|void>
disconnect()
Manually disconnect the client.
Returns
Type
Promise.<void|Error>
on(event, callback)
Register handler for event.
Parameters
Name | Type | Description --- | --- | --- event | Event | Event type callback | Function | Callback function
AccessTokenAboutToExpire
Triggered 5 minutes before access token is to expire.
client.onTokenAboutToExpire(() =>
// renewToken is a function you need to implement to fetch new token
// from application server
renewToken(renewedToken => sdk.updateToken(renewedToken));
);
Options
ConnectOptions
These options are parameters for connecting to platform.
Type
Object
Properties
Name | Type | Argument --- | --- | --- url | string | required protocol | string[] | optional automaticReconnect | boolean | optional reconnectionAttempts | number | optional reconnectDelay | number | optional reconnectBackoffAlgorithm | BackoffAlgorithm | optional pollInterval | number | optional requestTimeout | number | optional requestRetries | number | optional paginatorDefaultPageSize | number | optional nextPingDelay | number | optional pingWaitDelay | number | optional
Chat
Methods
createRoom(options)
Create room on the server with current user as the member.
Parameters
Name | Type | Argument | Description --- | --- | --- | --- options | CreateRoomOptions | Create room options
Returns
Type
Promise.<Room>
getRoomById(roomId)
Get room by its ID.
Parameters
Name | Type | Description --- | --- | --- roomId | String | room ID
Returns
Type
Promise.<Room>
getPublicRoomDescriptors()
Get list of public rooms.
Returns
Type
Promis.<Paginator.<RoomDescriptor>>
getUserRoomDescriptors()
Get list of rooms current user is a member of.
Returns
Type
Promise.<Paginator.<RoomDescriptor>>
getUser(userId)
Return User object for the user ID.
Parameters
Name | Type | Description --- | --- | --- userId | String | User ID
Returns
Type
Promise.<User>
getCurrentUser()
Return User object for currently logged in user.
Returns
Type
Promise.<User>
disconnect()
Gracefully disconnect SDK from the platform
Returns
Type
Promise.<void>
updateLastConsumedMessageIndex(index)
Set last consumed message index to new index.
Parameters
Name | Type | Description --- | --- | --- index | Number | Message index to set last read to
Returns
Type
Promise.<number|Error>
Events
roomReceivedMessage
Type
Object
Properties
Name | Type | Description --- | --- | --- room | RoomDescriptor | Room descriptor with updated last message and consumed message index message | Message | Message object with the new message
UserJoinedRoom
Triggered when user joins the room.
Type
User
UserLeftRoom
Triggered when user leaves the room.
Type
User
MessageUpdated
Triggered when message was updated.
Type
Object
Properties
Name | Type | Description --- | --- | --- message | Message | Updated Message index | Number | Index of the updated message
UserIsTyping
Triggered when a user in the room started typing.
Type
User
Options
CreateRoomOptions
These options are parameters for creating a room.
Type
Object
Properties
Name | Type | Argument --- | --- | --- attributes | Object | optional | friendlyName | String | required | createdBy | string | required | isPrivate | boolean | required | isDirect | boolean | required | isSMS | boolean | optional | smsNumber | string | optional | members | string[] | required |
Room
Properties
Name | Type | Description --- | --- | --- roomId | String | Room ID friendlyName | String | Room display name createdAt | Date | Date of creation createdBy | User | User who created the room updatedAt | Date | Date of update members | Array.<User> | Users who are members of this room isPrivate | Boolean | Is room private or public ('public' or 'private') isArchive | boolean | Is room archived isSms | boolean | Is sms smsNumber | string | sms number attributes | Object | Object with room's custom attributes lastMessageIndex | number | Index of last message lastConsumedMessageIndex | number | Index of last consumed message consumedMessageOffset | number | Number of unread messages by user this message is directed to
Methods
inviteUsers(userId)
Invite a user to the room.
Parameters
Name | Type | Description --- | --- | --- userId | String | User ID
Returns
Type
Promise.<Room|Error>
leaveRoom(options)
Leave the Room.
Returns
Type
Promise.<Room|Error>
options
Properties
Name | Type | Argument --- | --- | --- roomId | string | required
removeUser(roomId, userId)
Remove user from the Room.
Returns
Type
Promise.<Room|Error>
archiveRoom()
Archives the Room.
Returns
Type
Promise.<Room|Error>
deleteRoom()
Deletes the Room.
Returns
Type
Promise.<Room|Error>
updateRoom(room)
Update the Room.
Returns
Type
Promise.<Void|Error>
updateMessage(messageId, messageUpdate)
update message.
Returns
Type
Promise.<Void|Error>
deleteMessage(options)
delete message.
Returns
Type
Promise.<Message|Error>
options
Properties
Name | Type | Argument --- | --- | --- roomId | string | required messageId | string | required
removeUser(userId)
Remove user from this Room.
Parameters
Name | Type | Description --- | --- | --- userId | String | User ID
Returns
Type
Promise.<void|Error>
Events
UserJoinedRoom
Triggered when user joins the room.
Type
User
UserLeftRoom
Triggered when user leaves the room.
Type
User
MessageUpdated
Triggered when message was updated.
Type
Object
Properties
Name | Type | Description --- | --- | --- message | Message | Updated Message index | Number | Index of the updated message
UserIsTyping
Triggered when a user in the room started typing.
Type
User
RTC JS SDK
Import JS SDK as below:
import { JSSDK } from '@555platform/555-js-sdk';
And declare global variables inside .ts wrapper to access Rtc components via window object.
declare var window: any;
or
declare var IrisRtcSession: any;
JS SDK Documenation is available here