# ciim_sdk

> > 此版本与^2.0.0不兼容

Latest version **3.0.8** (published 2018-11-15) · ISC license · 0 weekly downloads

## Install

```sh
npm install ciim_sdk
pnpm add ciim_sdk
yarn add ciim_sdk
bun add ciim_sdk
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.0.8 |
| Published | 2018-11-15 |
| First published | 2018-09-05 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 565.6 KB |
| Known vulnerabilities | 0 (+25 in 1 direct dependencies) |
| Install scripts | no |
| Author | fengjc |
| Maintainers | fengjc |

## Links

- npm: https://www.npmjs.com/package/ciim_sdk
- npm.io page: https://npm.io/package/ciim_sdk

## Dependencies (4)

- [qs](https://npm.io/package/qs.md) ^6.5.2
- [axios](https://npm.io/package/axios.md) ^0.17.1
- [js-md5](https://npm.io/package/js-md5.md) ^0.7.3
- [engine.io-client](https://npm.io/package/engine.io-client.md) ^3.2.1

## Recent versions

- 3.0.8 (latest) — 2018-11-15
- 3.0.7 — 2018-11-14
- 3.0.6 — 2018-11-14
- 3.0.5 — 2018-11-01
- 3.0.4 — 2018-10-08
- 3.0.3 — 2018-10-08
- 3.0.2 — 2018-09-29
- 2.0.4 — 2018-09-29
- 3.0.1 — 2018-09-29
- 2.0.3 — 2018-09-26
- 2.0.2 — 2018-09-25
- 2.0.1 — 2018-09-12
- 1.0.1 — 2018-09-06
- 1.0.0 — 2018-09-05

## README

# JS SDK API

> 此版本与^2.0.0不兼容

[npm地址](https://www.npmjs.com/package/ciim_sdk)

## 安装

npm i --save ciim_sdk

## 使用

```
import IMSDK from 'ciim_sdk'

let im = new IMSDK.IMService(appkey, appsecret)
im.init(ws_url, api_url)
im.setDebug(false)
im.setLoginStatusListener(function(code, msg){
    // ...
})
// 设置监听器
im.setGroupListener(function (data) {
  console.log("setGroupListener,data=",data)
})
im.setPeerListener(function (data) {
  console.log("setPeerListener,data=",data)
})



```

## API

#### 初始化

```
设置websocket地址，api地址
void init(ws_url:String,api_host:String)
```
#### 登录

```
void login(username:string,token:string,platform:number)
```

#### 设置debug模式

```
debug开启，logger日志输出
void setDebug(bool b)
```

#### 设置登录状态回调

```
登录状态监听，断网重连会调用多次,需要在登录前设置
void setLoginStatusListener(cb:void function(code:number,msg:string){})
```

#### 设置网络连接成功回调

```
void setConnectListener(cb:void function(){})
```

#### 设置网络连接断开回调

```
void setDisconncetListener(cb:void function(){})
```

#### 设置网络重连回调

```
在重连前回调
void setTryconnectListener(cb:void function(){})
```

#### 网络失败

```
重试多次后彻底断开
void setNetFailListener(cb:void function(){})
```

#### 进入房间

```
void enterRoom(roomId :string,cb:void function(code:number,msg:string){})
```

#### 离开房间

```
void leaveRoom(cb:void function(code:number,msg:string){})
```

#### 发送透传消息

```
to取值 username:string, groupId:number, roomId:String,
type分别对应:1,2,3
void sendTransMsg(to:String,content:String,type:number,cb:void function(code:number,msg:String){})
```

#### 发送单聊

```
to: username
void sendPeerMsg(to:string,content:String,cb:void function(code:number,msg:String){})
```

#### 发送群聊

```
to: group_id
void sendGroupMsg(to:number,content:String,cb:void function(code:number,msg:String){})
```

#### 发送聊天室消息

```
void sendRoomMsg(content:String,cb:void function(code:number,msg:String){})
```

#### 修改房间状态

```
修改聊天室状态 type取值'set'|'incr',
set表示房间状态中${key}=${value},
incr表示${key}=${old}+${value},incr限数字操作
void sendRoomStateModify(type:String,key:String,value:String,cb:void function(code:number,msg:String){})
```

#### 单聊消息回调

```
setPeerListener
void setPeerListener(cb:void function(msg:IMMessage){})


e.g.
{FromUsername: 'xxx', Receiver: 1, Timestamp: 1536205803931, Content: "123"}

```

#### 群聊消息回调

```
void setGroupListener(cb:void function(msg:IMMessage){})

e.g.
{FromUsername: 'xxx', Receiver: 4, Timestamp: 1536218349740, Content: "123"}
```

#### 聊天室消息回调

```
void setRoomListener(cb:void function(msg:RoomMessage){})

e.g.
{FromUsername: 'xxx', Receiver: 4, Timestamp: 1536218349740, Content: "123"}
```

#### 聊天室状态回调

```
void setRoomStateListener(cb:void function(state: Object){},interval_milles:number)

state 为键值对用于实现上层业务，其中member_count是固定字段
```

#### 自定义系统消息

```
void setCustomSysListener(cb:void function(content:string){})
```

#### 透传消息回调

```
void setTransListener(cb:void function(msg:TransMessage){})

e.g.
{Type: 3, FromUsername: 'xxx', Receiver: "room1", Content: "透传消息。。。", Timestamp: 1536219228297}

type: 1|2|3, receiver 分别代指 user_id, group_id, room_id
```

#### 群成员加入回调

```
void setRoomMemberJoinListener(cb:void function(content:Object){})

```

#### 群成员离开回调

```
void setRoomMemberLeftListener(cb:void function(content:Object){})
```

#### 异地登录

```
void setAnotherLoginListener(cb:function(){})
```

#### 主动断开

```
void disconnect()
```

#### 是否登录

```
bool isLogin()
```


## Error code


|Code|描述|
|:-:|:-:|
|200|ok|
|201|uid非法|
|202|roomId非法|
|203|receiver非法|
|204|禁言|
|205|群不存在|
|206|非群成员|
|207|敏感词|
|208|登录失败|
|300|内部错误|
|301|正在登录|
|302|已经登录|
|303|未登录|
|304|不在房间内|
|305|心跳包超时|
|306|登录失败|
|408|超时|

---
_Source: https://npm.io/package/ciim_sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
