@typexim/web-sdk
v0.0.14
Published
```javascript import { create, enums, events } from '@typexim/web-sdk';
Keywords
Readme
TypeX WEB SDK
调用方式
import { create, enums, events } from '@typexim/web-sdk';
const chat = create('sdk', {
httpHost: 'https://coco.typex.im',
websocketHost: 'wss://w.typexim.com'
})
chat.setLogLevel(enums.LogLevel.info);
chat.login({
user_code: 'xxxx'
});
chat.once(
events.CHAT_SDK_EVENT.SDK_READY,
async () => {
chat.on(
events.CHAT_SDK_EVENT.FEED_LIST_UPDATED
({ is_sync_completed, list }) => {
console.log('feed列表', list);
}
);
const result = await chat.getFeedList();
if (result.ok) {
console.log('feed列表', result.data.list);
} else {
console.log(result.code);
console.log(result.msg);
}
}
);API清单
事件
- on
- off
事件码
- SDK_READY
- SDK_NOT_READY
- MESSAGE_RECEIVED
- MESSAGE_EDITED
- MESSAGE_RECALLED
- MESSAGE_REACTION_UPDATED
- MESSAGE_RECEIPT_RECEIVED
- FEED_LIST_UPDATED
- ROOM_MESSAGE_RECEIVED
- SYSTEM_NOTICE_RECEIVED
初始化
- create
设置日志级别
- setLogLevel
SDK是否ready
- isReady
登录
- login
- logout
- getLoginUser
会话Feed
- createSingleChatFeed
- deleteFeed
- getFeedList(不分页,最多100条)
- getFeedDetail
- getFeedMemberList
- setMute(
{ feedId, isMute },成功返回 Feed,失败返回 null) - markFeedAsUnRead(
{ feedId },成功返回 true,失败返回 false) - setPin(
{ feedId, pin },成功返回 Feed,失败返回 null) - setName(
{ feedId, name },成功返回 Feed,失败返回 null) - setSave(
{ feedId, isSave },成功返回 Feed,失败返回 null) - setArchive(
{ feedId, isArchive },成功返回 Feed,失败返回 null) - setMark(
{ feedId, isMark },成功返回 Feed,失败返回 null)
会话Feed消息
- getFeedMessageList(分页)
- createCustomMessage(可选 reply_msg_id / thread_msg_id / thread_id)
- sendMessageToFeed(custom 发送会转发 reply_msg_id / thread_msg_id / thread_id)
- sendMessageReadReceipt
- removeMessages(透传 twoWay / deleteFeed,deleteFeed 默认 0)
- addReaction
- deleteReaction
Feed 分组 Folder
- getFolders(可选 folderIds;folder.id 为 string)
聊天室Room
- joinRoom
- leaveRoom
- getJoinedRooms
聊天室Room消息
- getRoomRecentMessageList(最近50条)
- sendMessageToRoom
注意事项
- 同个浏览器可同时打开多个窗口:若已有窗口处于登录态,新窗口会自动复用其登录态并各自维持一条 WebSocket;若先打开的窗口尚未登录,另一窗口登录成功后也会广播给已打开的窗口。旧窗口不会被踢出。无已登录窗口时需自行调用
login。任一窗口调用logout成功后,其它窗口会同步本地登出并触发SDK_NOT_READY。每个窗口同一时刻只有一条推送 WebSocket;刷新页面会先关闭旧连接,再由新页面建立新连接。 - WebSocket 连接会带上
ws_route(取值与本浏览器共享的deviceId相同),供网关做粘性会话;同一浏览器多个 Tab 的ws_route一致。
