为了方便开发者快速接入,百城推送推出了适用于常规 Web、H5、Vue 等支持 WebSocket 项目的 WebSDK。
SDK与REST API对接的主要区别在于SDK封装了连接、发送消息、接收消息、错误监听等方法,您只需要调用即可,免去了大量重复的开发工作。
#### SDK & DEMO
[下载WebSDK](https://console.xiangbaicheng.com/static/xbcim_jssdk_1.0.0.min.js)
#### 引入SDK
SDK的引入很简单,只需要通过 script 标签引入即可。
#### 初始化SDK
```
var xbcim = XBCIM.init(token);
```
1、参数 token 为连接授权码,需要通过平台注册账号的 appKey 等参数进行获取,具体方法请参考[获取授权码](https://console.xiangbaicheng.com/doc/token.html)。
2、参数可以直接传递 token 字符串,也可以传入 json 格式,如 { token: token }。
3、初始化时,默认就会创建WebSocket链接。
#### 监听初始化成功
```
xbcim.onsuccess(callback);
// callback回调,可以在里面进行连接成功后的其他逻辑操作。
```
#### 监听错误
```
xbcim.onerror(callback);
```
1、onerror 会监听初始化失败、token 校验等错误回调。
2、callback回调,可以在里面进行连接成功后的其他逻辑操作。
#### 监听连接是否断开
```
xbcim.onclose(callback);
// callback回调,可以在里面进行连接断开后的其他逻辑操作。
```
#### 手动断开连接
```
xbcim.close(callback);
// callback回调,可以在里面进行连接断开后的其他逻辑操作。
```
#### 重新连接
```
xbcim.reconnect();
```
#### 发送单聊
```
xbcim.sendSingle(data);
```
data 为要发送的消息数据,其具体参数及含义如下:
| 参数 | 描述 |
| --- | --- |
| type | 消息类型,默认文本,支持其他自定义消息类型 |
| source | 消息发送者ID |
| target | 消息接收者ID |
| content | 消息内容,字符串 |
| extra | 额外数据,支持任意格式 |
#### 发送群聊
```
xbcim.sendGroup(data);
```
data 为要发送的消息数据,其具体参数及含义如下:
| 参数 | 描述 |
| --- | --- |
| type | 消息类型,默认文本,支持其他自定义消息类型 |
| source | 消息发送者ID |
| target | 群ID |
| content | 消息内容,字符串 |
| extra | 额外数据,支持任意格式 |
#### 接收消息
```
xbcim.onmessage(callback);
// callback 回调,回调会返回接收到的消息数据。
```