@activatortube/supernova-sdk

Client SDK for SuperNova

Usage no npm install needed!

<script type="module">
  import activatortubeSupernovaSdk from 'https://cdn.skypack.dev/@activatortube/supernova-sdk';
</script>

README

Supernova-SDK

Supernova-SDK SuperNova 聊天系统的客户端sdk

  1. 采用TypeScript编写,底层使用socket.io实现
  2. 默认的聊天记录保存使用的是realm

Usage

1. 添加依赖到项目

npm install --save @activatortube/supernova-sdk

2. 添加愿生模块支持

iOS

cd ios && pod install && cd ..

Android

默认就安装好了

3. 运行项目

4. 编码

import SuperNova from '@activatortube/supernova-sdk';

...
//聊天服务器的链接
SuperNova.init('https://supernova.com');
//获取supernova实例
let superNova = SuperNova.getInstance();
superNova.addConnectHandler(...);
superNova.addErrorHandler(...);

//登录到聊天服务器
//user_name 以及 password 通过后台api注册获得
superNova.login(user_name,  password);

...

superNova.removeConnectHandler(...)
superNova.removeErrorHandler(...)

5. API

SuperNova

1. 初始化参数
SuperNova.init(endpoint: string, adapter?: IDataStoreAdapter);

初始化需要一个服务器的地址,adapter如果不填,则会默认使用realm实现 |参数|类型|简介| | ------------- | ------------- | ------------- | | endpoint | string | 聊天服务器的地址 | | adapter | IDataStoreAdapter | 可不填,自定义只要实现IDataStoreAdapter定义的方法即可 |

2. SuperNova实例方法,实例使用 SuperNova.getInstance()获取
1. 登录
login(user_id: string, access_secret: string, reset?: boolean): void;
参数 类型 默认 简介
user_id string - 用户id,通过后台注册获得
access_secret string - 用户密钥,通过后台注册获得
reset boolean false 是否重置链接,默认false
2. 断开连接
disconnect(): void;
3. 发送消息,最好使用后面的方法发送
send(message: Message): Message;
参数 类型 默认 简介
message Message - 需要发送的消息
4. 发送文字消息
sendText(receiver: string, text: string, chat_type?: ChatType): Message;
参数 类型 默认 简介
receiver string - 接收者
text string - 消息内容
chat_type ChatType ChatType.PRIVATE 聊天室类型
5. 发送图片消息
sendImage(receiver: string, local_path: string, chat_type?: ChatType) : Message;
参数 类型 默认 简介
receiver string - 接收者
local_path string - 图片本地路径
chat_type ChatType ChatType.PRIVATE 聊天室类型
6. 添加一个消息的回调,收到新消息会触发
addMessageHandler(handler: message_handler_fun);
参数 类型 默认 简介
handler message_handler_fun - 回调 (message: Message) => void
7. 移除一个消息的回调
removeMessageHandler(handler: message_handler_fun);
参数 类型 默认 简介
handler message_handler_fun - 回调 (message: Message) => void
8. 添加一个连接的回调
addConnectHandler(handler: connect_handler_fun);
参数 类型 默认 简介
handler error_handler_fun - 回调 (status: CONNECT_STATUS) => void
9. 移除一个连接的回调
removeConnectHandler(handler: connect_handler_fun);
参数 类型 默认 简介
handler error_handler_fun - 回调 (status: CONNECT_STATUS) => void
10. 添加一个错误的回调
addErrorHandler(handler: error_handler_fun);
参数 类型 默认 简介
handler error_handler_fun - 回调 (error: string) => void
11. 移除一个错误的回调
removeErrorHandler(handler: error_handler_fun);
参数 类型 默认 简介
handler error_handler_fun - 回调 (error: string) => void
12. 添加一个错误的回调
addMessageSendHandler(handler: message_send_fun);
参数 类型 默认 简介
handler error_handler_fun - 回调 (message_id: string, status: MessageStatus) => void
13. 移除一个错误的回调
removeMessageSendHandler(handler: message_send_fun);
参数 类型 默认 简介
handler error_handler_fun - 回调 (message_id: string, status: MessageStatus) => void
3. messageAdapter实例方法,实例使用 SuperNova.getInstance().messageAdapter 获取
1. 将消息保存到本地
save(message: Message): void;
参数 类型 默认 简介
message Message - 消息
2. 将消息保存到本地
queryMessage(options: QueryOptions): Promise<Message[]>;
参数 类型 默认 简介
options QueryOptions - 查询条件,具体通过d.ts查看
3. 查询用户的聊天大纲,一般用于聊天列表页面
getOutline(user_id: string): Promise<Outline[]>;
参数 类型 默认 简介
user_id string - 用户id
4. 将某个会话所以消息标记为已读
markAsRead(user_id: string, mate_id: string): void;
参数 类型 默认 简介
user_id string - 用户id
mate_id string - 好友或群组id
5. 获取未读消息总数
getTotalUnreadCount(user_id: string): Promise<number>;
参数 类型 默认 简介
user_id string - 用户id
6. 更新某条消息的状态
updateMessageStatus(message_id: string, status: MessageStatus): Promise<boolean>;
参数 类型 默认 简介
message_id string - 用户id
status MessageStatus - 新状态
7. 更新某条消息的附件id
updateAttachId(message_id: string, attach_id: string): Promise<boolean>;
参数 类型 默认 简介
message_id string - 用户id
attach_id string - 附件id

changelog

1.0.0

  1. 最初的版本
  2. 包含的功能:登录,私聊,文字消息,图片消息等