@cf-platform/cim
Version:
消息队列库
121 lines (97 loc) • 4.23 kB
Markdown
# @cf-platform/cim
## 一、初始化
### 1. 初始化参数 `CIMOptions`
#### *取值为`*`号的参数为必填参数*
| 参数名 | 描述 | 类型 | 取值 |
|-----------------|-------|----------------|--------|
| url | 地址 | `string` | `*` |
| restartInterval | 重启间隔 | `number` | `3000` |
| loginParams | 登录参数 | `LoginParams` | `*` |
| customEvents | 自定义事件 | `CustomEvents` | `null` |
### 2. 登录参数 `LoginParams`
#### *取值为`*`号的字段为必填字段*
| 名称 | 描述 | 类型 | 取值 |
|-------------|--------|----------|-----------------------------|
| uid | 用户ID | `string` | `*` |
| channel | 通道 | `string` | `web` |
| appVersion | 系统ID | `string` | `*` |
| osVersion | 设备版本号 | `string` | `browser.version` |
| packageName | 包名 | `string` | `com.farsunset.cim` |
| language | 语言 | `string` | `window.navigator.language` |
| deviceId | 设备唯一ID | `string` | `*` |
| deviceName | 设备名称 | `string` | `browser.name` |
| `custom` | 自定义参数 | `string` | |
### 3. 自定义事件 `CustomEvents`
| 方法名 | 描述 | 类型 | 是否必须 |
|------------------------|-----------------|--------------------------|------|
| onSocketOpen | socket连接成功时触发方法 | `Function` | 否 |
| onSocketConnect | socket连接时触发方法 | `Function(url: string)` | 否 |
| onSocketClose | socket连接关闭时触发方法 | `Function` | 否 |
| onSocketError | socket连接错误时触发方法 | `Function` | 否 |
| onSendPong | 发送心跳时触发方法 | `Function` | 否 |
| onMessage | 收到消息时触发方法 | `Function(message: any)` | 否 |
| onReply | 收到回复时触发方法 | `Function(reply: any)` | 否 |
| onLoginSuccess | 回复登录成功时触发方法 | `Function(reply: any)` | 否 |
| onLoginDisconnected | 回复登录断开时触发方法 | `Function(reply: any)` | 否 |
| onAuthenticationFailed | 回复鉴权失败时触发方法 | `Function(reply: any)` | 否 |
### 4. 初始化方法
```ts
new CIM(<CIMOptions>{
url: 'wss://127.0.0.1:8080',
restartInterval: 0,
loginParams: {
uid: 'xxxxxxx',
appVersion: 'xx',
deviceId: 'xxxxxxxx'
}
});
```
## 二、发送消息
### 1. 发送参数 `CIMMessage`
| 参数名 | 描述 | 类型 | 可选值 |
|----------|-------|----------|----------------------------------------------------|
| key | 消息标识 | `string` | `client_closed`、`send_message`、`broadcast_message` |
| `custom` | 自定义参数 | `any` | |
### 2. 发送方法
```ts
CIM.sendMessage(data: CIMMessage);
```
## CIM
```ts
export declare class CIM {
/**
* @param options CIM参数
*/
constructor(options: CIMOptions);
/**
* 初始化
* @param options CIM初始化参数
*/
initialize(options: CIMOptions): void;
/** 连接 */
connect(): void;
/** 重新连接 */
reconnect(): void;
/** 关闭 */
close(): void;
/**
* 发送心跳
*/
sendPong(): void;
/**
* 接收消息
* @param message 收到的消息
*/
receiveMessage(message: any): void;
/**
* 接收回复
* @param reply
*/
receiveReply(reply: any): void;
/**
* 发送消息
* @param CIMMessage 消息Key
*/
sendMessage(data: CIMMessage): void;
}
```