乐趣区

关于web:作为小白接融云-IM-SDK-新路体验

作为小白接融云 IM SDK 新路体验~

前提阐明

应我的项目需要,实现即时通讯性能,业务场景绝对繁多,仅有单聊场景。选用的是融云的 IM SDK。

作为小白的初期心路历程

因为自己之前没有理解过即时通讯初期理解还是费了不少工夫的。蓝瘦~

话不多说,请看操作

第一步:注册

首先要在融云的开发者后盾注册拿到相应的信息。

因为初期理解,本人注册了一个开发者账号,没有用公司的,本人搞了个 appkey 和测试的 token,想着先弄个出样子。账号的注册参考的文档的疾速集成中的 前提条件
参考地址:
https://docs.rongcloud.cn/v4/views/im/noui/guide/quick/premise/ios.html

后续这个服务端会给咱们提供连贯用的 token。这里先不做过多介绍。

第二步:看文档

因为之前对即时通讯业务的盲区,其实最开始公司给出的一对一聊天室有些无从下手的。接下来是漫无目的的逛文档。文档目录还是很对我口味的,个人感觉还不错,在不经意间发现了个切换文档布局的小性能集体比拟喜爱。如果场景不分明就用场景的文档,分明了能够切换成平台的,很不便很清晰。~(。≧3≦)ノ⌒☆

我次要是通过看单聊的文档还有切换成平台模式的 web 端文档实现的集成。

附上文档地址:https://docs.rongcloud.cn/v4/views/im/noui/guide/quick/include/web.html

第三步:先弄个简略的示例

示例我参考了疾速集成。SDK 应用的是 web 3.x 的 SDK

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="http://cdn.ronghub.com/RongIMLib-3.0.5-dev.js"></script>
</head>

<body>
  <input id='messageValue' type="text/">
  <button onclick="sendMessage()"> 发送 </button>
  <button onclick="getMessageList()"> 获取历史音讯 </button>

</body>
<script>
  var appkey = 'XXX';
  var token = 'XXXX';
  var im;
  var conversationList = []; 

  function init() {im = RongIMLib.init({ appkey: appkey});
    im.watch({conversation: function (event) {
        var updatedConversationList = event.updatedConversationList; 
        console.log('更新会话汇总:', updatedConversationList);
        console.log('最新会话列表:', im.Conversation.merge({
          conversationList,
          updatedConversationList
        }));
      },
      message: function (event) {
        var message = event.message;
        console.log('收到新音讯:', message);
      },
      status: function (event) {
        var status = event.status;
        console.log('连贯状态码:', status);
      }
    });
  }
  function connect() {var user = { token: token};
    im.connect(user).then(function (user) {console.log('链接胜利, 链接用户 id 为:', user.id);
    }).catch(function (error) {console.log('链接失败:', error.code, error.msg);
    });
  }
  function sendMessage() {var inputText = document.getElementById('messageValue').value;

    var conversation = im.Conversation.get({
      targetId: 'user1',
      type: RongIMLib.CONVERSATION_TYPE.PRIVATE
    });
    conversation.send({
      messageType: RongIMLib.MESSAGE_TYPE.TEXT,
      content: {content: inputText}
    }).then(function (message) {console.log('发送文字音讯胜利', message);
    });
  }
  function getMessageList() {
    var conversation = im.Conversation.get({
      targetId: 'user1',
      type: RongIMLib.CONVERSATION_TYPE.PRIVATE
    });
    var option = {timestrap: +new Date(),
      count: 20
    };
    conversation.getMessages(option).then(function (result) {
      var list = result.list;
      var hasMore = result.hasMore;
      console.log('获取历史音讯胜利', list, hasMore);
    });
  }

  init();
  connect();
</script>

</html>

依据文档一步一步操作,都很顺利。体感不错。

额。。。请疏忽我没有写 UI,只有个输入框和发消息按钮。此处也想给融云提个小倡议,要是有 UI 组件或者含 UI 的 SDK 那就更完满了。

遇到的坑

因为看文档时没有留神到获取历史音讯须要先开明服务。导致本人音讯发送胜利再去获取历史音讯有问题,本人钻研获取历史音讯的办法钻研了半天。

融云官网:https://www.rongcloud.cn/

退出移动版