如何利用融云创建聊天室实时聊天?

匿名 (未验证) 提交于 2019-12-03 00:22:01

1:首先需要在融云官网上获取 appkey 和 token。

2:在页面一加载的情况下,执行此方法。

 var params = {           appKey :"0vnjpoad06r1z",           token : "qmaHOEUhr0vItpQ7faugUNBK1rDkehL4Dx5G9WPIYzORX+4jq3D8+38u2cdL2YJVAHUsbqgtasWyH//c2YZbfg==",       };
  var callbacks = {      };      init(params,callbacks);

function init(params, callbacks, modules){     var appKey = params.appKey;     var token = params.token;     var navi = params.navi || "";      modules = modules || {};     var RongIMLib = modules.RongIMLib || window.RongIMLib;     var RongIMClient = RongIMLib.RongIMClient;     var protobuf = modules.protobuf || null;      var config = {};      //私有云切换navi导航,私有云格式 '120.92.10.214:8888'     if(navi !== ""){         config.navi = navi;     }      //私有云切换api,私有云格式 '172.20.210.38:81:8888'     var api = params.api || "";     if(api !== ""){         config.api = api;     }      //support protobuf url + function     if(protobuf != null){         config.protobuf = protobuf;     };       RongIMLib.RongIMClient.init(appKey,null,config);      //     // /*     //  文档:http://www.rongcloud.cn/docs/web.html#3、设置消息监听器     //     //  注意事项:     //  1:为了看到接收效果,需要另外一个用户向本用户发消息     //  2:判断会话唯一性 :conversationType + targetId     //  3:显示消息在页面前,需要判断是否属于当前会话,避免消息错乱。     //  4:消息体属性说明可参考:http://rongcloud.cn/docs/api/js/index.html     //  */     RongIMClient.setOnReceiveMessageListener({         // 接收到的消息          onReceived: function (message) {             debugger;             // 判断消息类型             console.log("新消息: " + message.targetId);             console.log(message);             callbacks.receiveNewMessage && callbacks.receiveNewMessage(message);         }     });      var instance = RongIMClient.getInstance();      // 连接状态监听器     RongIMClient.setConnectionStatusListener({         onChanged: function (status) {              // console.log(status);             switch (status) {                 case RongIMLib.ConnectionStatus["CONNECTED"]:                 case 0:                     console.log("连接成功")                     callbacks.getInstance && callbacks.getInstance(instance);                     break;                  case RongIMLib.ConnectionStatus["CONNECTING"]:                 case 1:                     console.log("连接中")                     break;                  case RongIMLib.ConnectionStatus["DISCONNECTED"]:                 case 2:                     console.log("当前用户主动断开链接")                     break;                  case RongIMLib.ConnectionStatus["NETWORK_UNAVAILABLE"]:                 case 3:                     console.log("网络不可用")                     break;                  case RongIMLib.ConnectionStatus["CONNECTION_CLOSED"]:                 case 4:                     console.log("未知原因,连接关闭")                     break;                  case RongIMLib.ConnectionStatus["KICKED_OFFLINE_BY_OTHER_CLIENT"]:                 case 6:                     console.log("用户账户在其他设备登录,本机会被踢掉线")                     break;                  case RongIMLib.ConnectionStatus["DOMAIN_INCORRECT"]:                 case 12:                     console.log("当前运行域名错误,请检查安全域名配置")                     break;             }         }     });        //开始链接     var userid;     RongIMClient.connect(token, {         onSuccess: function(userId) {             callbacks.getCurrentUser && callbacks.getCurrentUser({userId:userId});             console.log("链接成功,用户id:" + userId);             userid=userId;             console.log(userid)             //创建 聊天室             sendMessage("", 'zzz3');          },         onTokenIncorrect: function() {             console.log('token无效');         },         onError:function(errorCode){             console.log(errorCode);         }     });}

3:链接成功;

4:创建聊天室:

  function sendMessage(mes, uid) {       var msg = new RongIMLib.TextMessage({           content: mes,       });   //     //或者使用RongIMLib.TextMessage.obtain 方法.具体使用请参见文档   //     // var msg = RongIMLib.TextMessage.obtain("hello");   //     // 私聊   PRIVATE   //    聊天室       var conversationtype = RongIMLib.ConversationType.CHATROOM;       var targetId = uid; // 目标 Id       var chatRoomId = 'zzz3'; // 聊天室 Id       var count = 3;// 拉取最近聊天最多 50 条       RongIMClient.getInstance().joinChatRoom(chatRoomId, count, {           onSuccess: function() {               // 加入聊天室成功。               console.log('加入聊天室成功。');           },           onError: function(error) {               // 加入聊天室失败               console.log('加入聊天室失败。');           }       });   }    function getMessage() {       RongIMClient.setOnReceiveMessageListener({           // 接收到的消息           onReceived: function(message) {                // 判断消息类型               console.log(message);                              switch (message.messageType) {                   case RongIMClient.MessageType.TextMessage:                       console.log(message)                       //发送的消息内容将会被打印                       // answers(message.content.content,message.senderUserId);                       break;                   case RongIMClient.MessageType.ImageMessage:                        // do something...                       break;                   case RongIMClient.MessageType.DiscussionNotificationMessage:                        // do something...                       break;                   case RongIMClient.MessageType.LocationMessage:                        // do something...                       break;                   case RongIMClient.MessageType.RichContentMessage:                        // do something...                       break;                   case RongIMClient.MessageType.DiscussionNotificationMessage:                        // do something...                       break;                   case RongIMClient.MessageType.InformationNotificationMessage:                       // do something...                       break;                   case RongIMClient.MessageType.ContactNotificationMessage:                       // do something...                       break;                   case RongIMClient.MessageType.ProfileNotificationMessage:                       // do something...                       break;                   case RongIMClient.MessageType.CommandNotificationMessage:                       // do something...                       break;                   case RongIMClient.MessageType.CommandMessage:                       // do something...                       break;                   case RongIMClient.MessageType.UnknownMessage:                       // do something...                       break;                   case RongIMClient.MessageType.VoiceMessage:                       console.log(message);                       getVoice((message.content.duration), (message.content.content));                        break;                   default:                        // 自定义消息                       // do something...               }           }       });   }
*需要在链接成功之后,就创建聊天室,把目标ID换成聊天室id,这样聊天室的成员都可以收到消息。(换一个token)再次运行,就可以收到消息。


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!