@555platform/555-js-sdk 中文文档教程

发布于 3年前 浏览 28 更新于 3年前

555-js-sdk

Build Status

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';
  1. 使用 555tokenConnectOptionsMessageAdapter

    const sdk = SDK.Client.create(
                userData.access_token,
                {
              url: '',
              automaticReconnect: true
                },
                new SDK.QueuedMessageAdapter<SDK.MessagePayload>()
            );
    
    
    sdk.chat.connect();
    
  2. 建立连接获取当前用户所属房间的列表。

    const iter: SDK.Paginator<
        SDK.RoomDescriptor,
        SDK.RoomIterator
      > = await sdk.chat.getUserRoomDescriptors(0, 0);
    
  3. 来自 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

Build Status

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';
  1. 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();
    
  2. Get list of rooms current user is a member of.

    const iter: SDK.Paginator<
        SDK.RoomDescriptor,
        SDK.RoomIterator
      > = await sdk.chat.getUserRoomDescriptors(0, 0);
    
  3. 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

更多

友情链接

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文