总体思路,按手册的来就行了。先引入相关js,再初始化,然后连接融云服务器,设置连接状态监听器以及消息监听器,(消息监听器可以获取接受到的message,取要显示的内容显示在页面上,这里就和页面连接上了,不过样式得自己写的),将生成消息方法绑定事件,触发事件发送消息。
1.首先
获取官方 Web SDK (目前版本为 2.2.5 ) 地址加入到自己页面中 如下(支持 https):我建议一定要引最新版本。
<script src="http://cdn.ronghub.com/RongIMLib-2.2.5.min.js"></script>
引入以上一个以及其他要引入的
2.初始化(填入自己申请的 appkey值 和 token值 ) //获取融云的token,官方文档说的很清楚。
RongIMClient.init("appkey值");//这是初始化,需要填参数就是你的APPKEY。这个不难理解。var token = "token值";
3.连接融云服务器
RongIMClient.connect(token, { onSuccess: function(userId) { console.log("Login successfully."+ userId); }, onTokenIncorrect: function() { console.log('token无效'); }, onError:function(errorCode){ var info = ''; switch (errorCode) { case RongIMLib.ErrorCode.TIMEOUT: info = '超时'; break; case RongIMLib.ErrorCode.UNKNOWN_ERROR: info = '未知错误'; break; case RongIMLib.ErrorCode.UNACCEPTABLE_PaROTOCOL_VERSION: info = '不可接受的协议版本'; break; case RongIMLib.ErrorCode.IDENTIFIER_REJECTED: info = 'appkey不正确'; break; case RongIMLib.ErrorCode.SERVER_UNAVAILABLE: info = '服务器不可用'; break; } console.log(errorCode); } });
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
4. 设置连接监听状态 ( status 标识当前连接状态)
RongIMClient.setConnectionStatusListener({ onChanged: function (status) { switch (status) { case RongIMLib.ConnectionStatus.CONNECTED: console.log('链接成功'); break; case RongIMLib.ConnectionStatus.CONNECTING: console.log('正在链接'); break; case RongIMLib.ConnectionStatus.DISCONNECTED: console.log('断开连接'); break; case RongIMLib.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT: console.log('其他设备登陆'); break; case RongIMLib.ConnectionStatus.NETWORK_UNAVAILABLE: console.log('网络不可用'); break; } } });
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
5.消息监听器
RongIMClient.setOnReceiveMessageListener({ onReceived: function (message) { switch(message.messageType){ console.log(message.content.content); break; case RongIMClient.MessageType.ImageMessage: break; case RongIMClient.MessageType.DiscussionNotificationMessage: break; case RongIMClient.MessageType.LocationMessage: break; case RongIMClient.MessageType.RichContentMessage: break; case RongIMClient.MessageType.DiscussionNotificationMessage: break; case RongIMClient.MessageType.InformationNotificationMessage: break; case RongIMClient.MessageType.ContactNotificationMessage: break; case RongIMClient.MessageType.ProfileNotificationMessage: break; case RongIMClient.MessageType.CommandNotificationMessage: break; case RongIMClient.MessageType.CommandMessage: break; case RongIMClient.MessageType.UnknownMessage: break; default: } } });
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
6.生成聊天内容
我将生成消息的方法,绑定在按钮的点击事件上,点击发送消息
function getMessage(){ $('.content_box').append( 。。。); var msg = new RongIMLib.TextMessage({content:"hello",extra:"附加要传递的值"}); var conversationtype = RongIMLib.ConversationType.PRIVATE; var targetId = "输入目标的userId"; RongIMClient.getInstance().sendMessage(conversationtype, targetId, msg, { onSuccess: function (message) { console.log("Send successfully"); }, onError: function (errorCode, message) { var info = ''; switch (errorCode) { case RongIMLib.ErrorCode.TIMEOUT: info = '超时'; break; case RongIMLib.ErrorCode.UNKNOWN_ERROR: info = '未知错误'; break; case RongIMLib.ErrorCode.REJECTED_BY_BLACKLIST: info = '在黑名单中,无法向对方发送消息'; break; case RongIMLib.ErrorCode.NOT_IN_DISCUSSION: info = '不在讨论组中'; break; case RongIMLib.ErrorCode.NOT_IN_GROUP: info = '不在群组中'; break; case RongIMLib.ErrorCode.NOT_IN_CHATROOM: info = '不在聊天室中'; break; default : info = "x"; break; } console.log('发送失败:' + info); } } ); }