跳转至

初始化

引入

<!-- 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;
    }
  }
});