初始化
引入¶
<!-- HTTP -->
<script src="http://cdn.ronghub.com/RongIMLib-3.0.0-dev.js"></script>
<!-- HTTPS -->
<script src="https://cdn.ronghub.com/RongIMLib-3.0.0-dev.js"></script>
<!-- 压缩版 -->
<script src="https://cdn.ronghub.com/RongIMLib-3.0.0-dev.min.js"></script>
初始化¶
初始化. 返回 IM 实例
参数说明:
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
appkey | String | 是 | 应用的唯一标识 | 3.0.0 |
debug | Boolean | 否 | 调试模式. 开启后 SDK 自动向控制台输出日志 | 3.0.0 |
detect | Object | 否 | 网络嗅探配置. SDK 自动重连时通过此配置进行网络探测 | 3.0.0 |
detect 参数说明:
参数 | 类型 | 必填 | 默认值 | 说明 | 最低版本 |
---|---|---|---|---|---|
url | String | 否 | https://cdn.ronghub.com/im_detecting | 网络嗅探地址 | 3.0.0 |
intervalTime | Number | 否 | 1500 | 网络嗅探间隔时间 | 3.0.0 |
代码示例:
var im = RongIMLib.init({
appkey: 'kj29cjn0l1myd'
});
设置监听¶
监听消息、状态、会话列表的变化
参数说明:
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
message | Function | 否 | 接收消息时触发 | 3.0.0 |
status | Function | 否 | IM 链接状态变化时触发 | 3.0.0 |
conversation | Function | 否 | 会话列表变化时触发 | 3.0.0 |
需注意: im.watch 方法若执行多次, 监听同样也会执行多次
代码示例:
var conversationList = []; // 当前已存在的会话列表
im.watch({
conversation: function(event){
var updatedConversationList = event.updatedConversationList; // 更新的会话列表
console.log('更新会话汇总:', updatedConversationList);
console.log('最新会话列表:', im.Conversation.merge({
conversationList: conversationList,
updatedConversationList: updatedConversationList
}));
},
message: function(event){
var message = event.message;
console.log('收到新消息', message);
},
status: function(event){
var status = event.status;
switch (status) {
case RongIMLib.CONNECTION_STATUS.CONNECTED:
console.log('链接成功');
break;
case RongIMLib.CONNECTION_STATUS.CONNECTING:
console.log('正在连接中');
break;
case RongIMLib.CONNECTION_STATUS.DISCONNECTED:
console.log('已主动断开连接');
break;
case RongIMLib.CONNECTION_STATUS.NETWORK_UNAVAILABLE:
console.log('网络不可用'); // SDK 内部会自动进行重连
break;
case RongIMLib.CONNECTION_STATUS.SOCKET_ERROR:
console.log('Socket 链接错误'); // SDK 内部会自动进行重连
break;
case RongIMLib.CONNECTION_STATUS.KICKED_OFFLINE_BY_OTHER_CLIENT:
console.log('其他设备登录, 本端被踢'); // 己端被踢, 不可进行重连. 否则会造成多端循环互踢
break;
case RongIMLib.CONNECTION_STATUS.BLOCKED:
console.log('链接断开, 用户已被封禁');
break;
default:
console.log('链接状态变化为:', status);
break;
}
}
});