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)再次运行,就可以收到消息。
文章来源: 如何利用融云创建聊天室实时聊天?