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,ConnectOptionsandMessageAdapterconst 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