555-js-sdk
555 JavaScript SDK
555-js-sdk 提供简单的 API 以使用 555 平台构建基于聊天的应用程序。
Getting started
npm i @555platform/555-js-sdk
Usage - Examples
import SDK from '@555platform/555-js-sdk';
使用 555token
、ConnectOptions
和 MessageAdapter
const sdk = SDK.Client.create(
userData.access_token,
{
url: '',
automaticReconnect: true
},
new SDK.QueuedMessageAdapter<SDK.MessagePayload>()
);
sdk.chat.connect();
建立连接获取当前用户所属房间的列表。
const iter: SDK.Paginator<
SDK.RoomDescriptor,
SDK.RoomIterator
> = await sdk.chat.getUserRoomDescriptors(0, 0);
来自 SDK 的回调和事件。
```javascript
SDK.Client.Chat.on(
SDK.CMF.ChatServerEventTypes.RoomAdded,
这个.onRoomsChanged
);
SDK.Client.Chat.on(
SDK.CMF.ChatServerEventTypes.UserJoinedRoom,
这个.onRoomsChanged
);
SDK.Client.Chat.on(
SDK.CMF.ChatServerEventTypes.UserLeftRoom,
这个.onRoomsChanged
);
SDK.Client.Chat.on(
SDK.CMF.ChatServerEventTypes.RoomReceivedMessage,
这个.onRoomReceivedMessage
);
sdk.onTokenAboutToExpire(() =>;
// renewToken 是你需要实现的函数来获取新的令牌
// 来自应用服务器
renewToken(renewedToken => sdk.updateToken(renewedToken));
);
```
APIs
Connect
Methods
<static> create(accessToken, ConnectOptions, messageAdapter)
创建和初始化客户端的工厂方法
参数
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 |
返回
类型
客户端|错误
updateToken(accessToken)
更新当前令牌。 用于使用刷新的令牌更新客户端。
参数
Name |
Type |
Argument |
Description |
accessToken |
string |
required |
555 Platform access token |
返回
类型
void
connect()
连接到平台。
参数
Name |
Type |
Argument |
Description |
options |
ConnectOptions |
optional |
Connection options |
返回
类型
Promise.
disconnect()
手动断开客户端。
返回
类型
Promise.
on(event, callback)
为事件注册处理程序。
参数
Name |
Type |
Description |
event |
Event |
Event type |
callback |
Function |
Callback function |
AccessTokenAboutToExpire
在访问令牌到期前 5 分钟触发。
client.onTokenAboutToExpire(() =>
// renewToken is a function you need to implement to fetch new token
// from application server
renewToken(renewedToken => sdk.updateToken(renewedToken));
);
Options
ConnectOptions
这些选项是连接平台的参数。
类型
对象
属性
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)
在服务器上以当前用户作为成员创建空间。
参数
Name |
Type |
Argument |
Description |
options |
CreateRoomOptions |
Create room options |
|
返回
类型
Promise.
getRoomById(roomId)
通过 ID 获取房间。
参数
Name |
Type |
Description |
roomId |
String |
room ID |
返回值
类型
Promise.
getPublicRoomDescriptors()
获取公共房间列表。
返回
类型
Promis.>
getUserRoomDescriptors()
获取当前用户所属房间的列表。
返回
Type
Promise.>
getUser(userId)
返回用户 ID 的用户对象。
参数
Name |
Type |
Description |
userId |
String |
User ID |
返回值
类型
Promise.
getCurrentUser()
返回当前登录用户的用户对象。
Returns
Type
Promise.
disconnect()
优雅地断开 SDK 与平台的连接
Returns
Type
Promise.
updateLastConsumedMessageIndex(index)
将上次使用的消息索引设置为新索引。
参数
Name |
Type |
Description |
index |
Number |
Message index to set last read to |
返回值
类型
Promise.
Events
roomReceivedMessage
类型
对象
属性
Name |
Type |
Description |
room |
RoomDescriptor |
Room descriptor with updated last message and consumed message index |
message |
Message |
Message object with the new message |
UserJoinedRoom
当用户加入房间时触发。
Type
User
UserLeftRoom
当用户离开房间时触发。
类型
用户
MessageUpdated
消息更新时触发。
Type
对象
Properties
Name |
Type |
Description |
message |
Message |
Updated Message |
index |
Number |
Index of the updated message |
UserIsTyping
当房间中的用户开始键入时触发。
类型
用户
Options
CreateRoomOptions
这些选项是用于创建房间的参数。
类型
对象
属性
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
属性
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)
邀请用户到房间。
参数
Name |
Type |
Description |
userId |
String |
User ID |
返回
类型
Promise.
leaveRoom(options)
离开房间。
返回
类型
Promise.
options
Properties
Name |
Type |
Argument |
roomId |
string |
required |
removeUser(roomId, userId)
从房间中删除用户。
返回
类型
Promise.
archiveRoom()
存档房间。
返回
类型
Promise.
deleteRoom()
删除房间。
返回
类型
Promise.
updateRoom(room)
更新房间。
返回
类型
Promise.
updateMessage(messageId, messageUpdate)
更新消息。
返回
类型
Promise.
deleteMessage(options)
删除消息。
返回
类型
Promise.
options
Properties
Name |
Type |
Argument |
roomId |
string |
required |
messageId |
string |
required |
removeUser(userId)
从该房间中删除用户。
参数
Name |
Type |
Description |
userId |
String |
User ID |
返回
类型
Promise.
Events
UserJoinedRoom
当用户加入房间时触发。
Type
User
UserLeftRoom
当用户离开房间时触发。
类型
用户
MessageUpdated
消息更新时触发。
Type
对象
Properties
Name |
Type |
Description |
message |
Message |
Updated Message |
index |
Number |
Index of the updated message |
UserIsTyping
当房间中的用户开始键入时触发。
类型
用户
RTC JS SDK
导入 JS SDK 如下:
import { JSSDK } from '@555platform/555-js-sdk';
并在 .ts 包装器中声明全局变量以通过窗口对象访问 Rtc 组件。
declare var window: any;
or
declare var IrisRtcSession: any;
JS SDK 文档可在此处获取
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
and MessageAdapter
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.
```javascript
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