Supernova-SDK
Supernova-SDK SuperNova 聊天系统的客户端sdk
- 采用TypeScript编写,底层使用socket.io实现
- 默认的聊天记录保存使用的是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 | messagehandlerfun | - | 回调 (message: Message) => void |
7. 移除一个消息的回调
removeMessageHandler(handler: message_handler_fun);
参数 | 类型 | 默认 | 简介 |
---|
handler | messagehandlerfun | - | 回调 (message: Message) => void |
8. 添加一个连接的回调
addConnectHandler(handler: connect_handler_fun);
参数 | 类型 | 默认 | 简介 |
---|
handler | errorhandlerfun | - | 回调 (status: CONNECT_STATUS) => void |
9. 移除一个连接的回调
removeConnectHandler(handler: connect_handler_fun);
参数 | 类型 | 默认 | 简介 |
---|
handler | errorhandlerfun | - | 回调 (status: CONNECT_STATUS) => void |
10. 添加一个错误的回调
addErrorHandler(handler: error_handler_fun);
参数 | 类型 | 默认 | 简介 |
---|
handler | errorhandlerfun | - | 回调 (error: string) => void |
11. 移除一个错误的回调
removeErrorHandler(handler: error_handler_fun);
参数 | 类型 | 默认 | 简介 |
---|
handler | errorhandlerfun | - | 回调 (error: string) => void |
12. 添加一个错误的回调
addMessageSendHandler(handler: message_send_fun);
参数 | 类型 | 默认 | 简介 |
---|
handler | errorhandlerfun | - | 回调 (message_id: string, status: MessageStatus) => void |
13. 移除一个错误的回调
removeMessageSendHandler(handler: message_send_fun);
参数 | 类型 | 默认 | 简介 |
---|
handler | errorhandlerfun | - | 回调 (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
- 最初的版本
- 包含的功能:登录,私聊,文字消息,图片消息等