@555platform/555-js-sdk v4.4.27
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
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago