起步Bex5集成融云即时通讯_孤小狼的博客-程序员秘密

技术标签: javascript  jquery  

define(function(require) {
    var $ = require("jquery");
    var justep = require("$UI/system/lib/justep");
    var RongIMLib = require("$UI/system/lib/RongIMLib");
    var protobuf = require("$UI/system/lib/protobuf-2.3.9.min");
    var Model = function() {
        this.callParent();
    };
    Model.prototype.modelLoad = function(event) {
        var appkey = '82hegw5u81xdx';
        // 仅在桌面版解决方案中有效,Web 可忽略
        var dataAccessProvider = null;
        // 私有部署配置,公有云用户可忽略
        var options = {
            navi : 'navi.cn.ronghub.com',
            api : 'api-cn.ronghub.com',
            protobuf : protobuf
        }
        // RongIMLib.RongIMClient.init(appkey);
        RongIMLib.RongIMClient.init(appkey, dataAccessProvider, options);
        /* 连接状态监听器 */
        RongIMLib.RongIMClient.setConnectionStatusListener({
            onChanged : function(status) {
                /* status 标识当前连接状态 */
                console.log('连接成功');
            }
        });
        /* 消息监听器 */
        RongIMLib.RongIMClient.setOnReceiveMessageListener({
            onReceived : function(message) {
                console.log(message);
            }
        });

        /* 开发者后台获取或 Server API */
        var token = 'cy/[email protected];rpy9.cn.rongcfg.com';
        RongIMLib.RongIMClient.connect(token, {
            onSuccess : function(userId) {
                console.log('连接成功, 用户 ID 为', userId);
                // 连接已成功, 此时可通过 getConversationList 获取会话列表并展示
            },
            onTokenIncorrect : function() {
                console.log('连接失败, 失败原因: token 无效');
            },
            onError : function(errorCode) {
                console.log('连接失败, 失败原因: ', errorCode);
            }
        });

    };

    Model.prototype.button5Click = function(event) {
        RongIMLib.RongIMClient.getInstance().getConversationList({
            onSuccess : function(list) {
                // list => 会话列表集合
                // 获取成功, 此处可通过处理 list 在 UI 上展示会话列表
                console.log(list[0].latestMessage.content.content)

            },
            onError : function(error) {
                console.log(error)
            }
        }, null);
    };

    Model.prototype.button6Click = function(event) {
        var msg = new RongIMLib.TextMessage({
            content : 'Bex5测试成功!',
            extra : '附加信息'
        });
        var conversationType = RongIMLib.ConversationType.PRIVATE; // 单聊
        var targetId = 'azhi0423'; // 用户 B 的 userId 
        RongIMLib.RongIMClient.getInstance().sendMessage(conversationType, targetId, msg, {
            onSuccess : function(message) {
                // message 为发送的消息对象并且包含服务器返回的消息唯一 ID 和发送消息时间戳
                console.log('发送成功');
            },
            onError : function(errorCode, message) {
                console.log(errorCode)
            }
        });

    };

    Model.prototype.button7Click = function(event) {
        var conversationType = RongIMLib.ConversationType.PRIVATE; //单聊, 其他会话选择相应的消息类型即可
        var targetId = 'azhi0423'; // 想获取自己和谁的历史消息,targetId 赋值为对方的 userId。类型: string
        var timestrap = 0; // 默认传 null,若从头开始获取历史消息,请赋值为 0, timestrap = 0;
        var count = 20; // 每次获取的历史消息条数,范围 0-20 条,可以多次获取
        RongIMLib.RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, timestrap, count, {
            onSuccess : function(list, hasMsg) {
                // list => Message 数组。
                // hasMsg => 是否还有历史消息可以获取。
                console.log(list.length);
            },
            onError : function(error) {
                console.log('GetHistoryMessages, errorcode:' + error);
            }
        });

    };

    return Model;
});

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_28670873/article/details/113628141

智能推荐

react获取当前页面的url参数_??yy的博客-程序员秘密

react获取当前页面的url参数,必须在url路由对应的组件上获取,在子组件上获取不到,为undefined,获取形如 /news/:id 的后面的参数 idthis.props.match.params.id获取形如 /news?id="abc"的 ?id="abc" 部分,this.props.location.search转载于:https://...

【Get深一度】矩形窗/bartlett/Blackman/hamming/Hanning/kaiser -相控阵雷达原理_Treysure的博客-程序员秘密_矩形窗,汉明窗,布莱克曼窗的特点

数字信号处理中,通常取有限时间片段进行分析。具体做法:1>从信号截取一个时间片段 ; 2>对信号进行傅里叶变换、相关分析。信号的截断产生了能量泄漏而FFT算法计算频谱产生栅栏效应从原理上讲这两种误差都是不能消除的FFT分析中为了减少或消除频谱能量泄漏及栅栏效应采用不同的截取函数对信号进行截短截短函数称为窗函数,简称为窗。泄漏与窗函数频谱的两侧旁瓣有关对于窗函数的选用总的原则是:保持最大

Caffe中增加新的layer以及Caffe中triplet loss layer的实现_tangwei2014的博客-程序员秘密

【如何在caffe中增加新的layer】【caffe中实现Triplettloss layer】【caffe中新增加的layer的编译和测试】

一文读懂TensorFlow 2.0高阶API_博文视点的博客-程序员秘密

在TensorFlow 2.0中对大量的高阶API库进行了删减与合并,根据官方的解释,这一切的变化都是为了使TensorFlow2.0更加易用和简洁。本文以官方推荐的唯一高阶API库tf.keras为主,概括地介绍TensorFlow 2.0的高阶API。在TensorFlow 2.0版本中完全移除了tf.contrib这个高阶API库,官方推荐的高阶API只有tf.keras。Keras是...

如何打造高效的团队(四)- 团队效能度量_xiaozhi239的博客-程序员秘密

文章目录为什么效能度量很重要度量什么怎么度量定性指标定量指标发挥效能度量的价值为什么效能度量很重要如何打造高效的团队(一) - 团队架构如何打造高效的团队(二) - Android平台团队架构实例如何打造高效的团队(三) - 领导力前三篇博客分别从团队架构和领导力两个角度讨论了如何打造高效团队,而这篇我打算讨论下团队效能度量。如果将团队看成一架机器,那么团队架构是骨架,领导力是推动,而效率度量就是校准。为什么度量很重要?管理学上有这么一句话:If you can’t measure it,

UnityShader源码2017---学习笔记与自我拓展004_佛经forever的博客-程序员秘密

源自Internal-Colored这个shader也没有什么可说的知道[]的用法就好了,大家都知道。

随便推点

子集和问题_摆渡客的博客-程序员秘密_子集和问题

子集和问题 描述 Description 【问题描述】   子集和问题的一个实例为〈S,t〉。其中,S={ x1, x2,…, xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得子集S1和等于c。 【编程任务】   对于给定的正整数的集合S={ x1, x2,…, xn}和正整数c,编程计算S 的一个子集S1,使得子集S1和等于c。 【输...

移动端点击链接元素出现蓝色边框或者出现半透明蓝色背景_沉、睡的博客-程序员秘密

解决办法:a{outline:none;}当上面没有效果的时候,可以试试*{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;}

vue非父子组件传值完整_LuckyBrown17的博客-程序员秘密

非父子组件间的传值常一个应用会以一棵嵌套的组件树的形式来组织:将一个大组件进行拆分下图这种情况的组件间传值(父子组件间传值)方法:父组件通过 Props 向子组件传值,子组件通过事件触发向父组件传值下图这种情况的组件间传值(父子组件间隔代传值,也是非父子组件间传值)方法:将第二层作为...

制作一个grub虚拟启动盘,在qemu下调试_XuNONO的博客-程序员秘密

首先需要一个空白文件,我将其填充为zero 512MiBdd if=/dev/zero of=./grub.img bs=1024 count=524288得到grub.img大小为512MiB的文件然后将其挂载为loop设备mknod /dev/loop200 b 7 200losetup /dev/loop200 ./grub.img为loop200分区fdisk /dev/..._1671465600

Qt开发之路——xxprivate类的使用及意义_疯狂java杰尼龟的博客-程序员秘密_private类

1.应用程序封装成so动态库时,需要提供头文件,此时为了把私有数据封装起来,就需要把私有数据封装成private的类,把它放在cpp文件而非h文件中,这样就把私有数据封装起来不给用户看了。动态链接库的好处是不言而喻的,一个稍微复杂一点的程序,顶层设计的时候良好的类库划分可以让工作变得很简单,而将不同类编译成共享库文件可以实现程序的模块化,提高代码复用程度。 2.在私有数据修改时,不用重新编译所有文件,只需要编译这个动态库就可以了,因为头文件并没有改变。参考:https://www.cnblogs.

推荐文章

热门文章

相关标签