融云web API 个人使用心得

融云web API 个人使用心得

这两天要搞一个即时通讯,选了融云,看了官网的SDK 手册,不是很明白,网上相关资料也比较少,自己摸索着弄了个简单实现两个网页私聊的功能。

总体思路,按手册的来就行了。先引入相关js,再初始化,然后连接融云服务器,设置连接状态监听器以及消息监听器,(消息监听器可以获取接受到的message,取要显示的内容显示在页面上,这里就和页面连接上了,不过样式找不到,我是自己写的),将生成消息方法绑定事件,触发事件发送消息。

1.首先

获取官方 Web SDK (目前版本为 2.2.4 ) 地址加入到自己页面中 如下(支持 https):

<script src="http://cdn.ronghub.com/RongIMLib-2.2.4.min.js"></script> 

引入以上一个以及其他要引入的

2.初始化(填入自己申请的 appkey值token值

RongIMClient.init("appkey值");
var token = "token值";

3.连接融云服务器

// 连接融云服务器。
        RongIMClient.connect(token, {
                onSuccess: function(userId) {
                console.log("Login successfully."+ userId);
                //userId是申请token时的填写的id,到时候可以封装在下面的extra中传过去
            },
            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);
            }
        });

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

5.消息监听器

 // 消息监听器
        RongIMClient.setOnReceiveMessageListener({
            // 接收到的消息
            onReceived: function (message) {
                // 判断消息类型
                switch(message.messageType){

                        console.log(message.content.content);

        //message接受到的消息(包含发送的信息,也可以在extra中添加要传递的值,如:时间等)

                        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;
                    default:
                    // 自定义消息
                    // do something...
                }
            }

        });

6.生成聊天内容

我将生成消息的方法,绑定在按钮的点击事件上,点击发送消息

  function getMessage(){

            //生成聊天内容
            $('.content_box').append( 。。。);
            //在页面追加你要生成的内容

            // 定义消息类型,文字消息使用 RongIMLib.TextMessage
            var msg = new RongIMLib.TextMessage({content:"hello",extra:"附加要传递的值"});

            var conversationtype = RongIMLib.ConversationType.PRIVATE; // 私聊
            var targetId = "输入目标的userId"; // 目标 Id


            RongIMClient.getInstance().sendMessage(conversationtype, targetId, msg, {
                        // 发送消息成功

                        onSuccess: function (message) {
                          //message 为发送的消息对象并且包含服务器返回的消息唯一Id和发送消息时间戳
                            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);
                        }
                    }
            );
        }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值