接入融云所遇到的坑

快到年底了,本来想着混混日子,看看书,拿着最后一个月的工资 高高兴兴回家去。愿望是美好的,现实是残酷的。 新来的CTO,让开始接入融云  哎。。。


大概看了一下融云提供的Demo, 说实话融云提供的文档还是很清楚的,所以并没有很多的坑。主要自己吓自己,导致的。


场景: 直播聊天室


本来想要把每一步都给贴出来,算是总结下。但是发现这编辑器是在不是那么好用。而且好像也没这个必要。好好看下demo 按照流程走 肯定可以介入成功。

   唯一遇到一个坑就是  服务端插入消息的时候 客户端的 onReceived方法 一直收不到 回调。

    private static RongIMClient.OnReceiveMessageListener onReceiveMessageListener = new RongIMClient.OnReceiveMessageListener() {
        @Override
        public boolean onReceived(Message message, int i) {
            Log.e("lipeng","_____onReceived____"+i+"条");
            TextMessage msg = (TextMessage) message.getContent();
            if (!msg.getContent().equals("")) {
                msg.setExtra(msg.getContent());
            }
            String messageExtra = msg.getExtra();
            dispatchMessage(messageExtra,i);
            return false;
        }
    }; 
这里说下我们自己的业务,  创建聊天室的时候  我们设置一个roomid ,对应每一个用户。 首先是创建这个聊天室,  然后每一个客户端进入聊天,

现在业务需要 没进入一个用户,需要插入一条 谁谁进入聊天室的文本, 但是这条插入的消息我们客户端一直收不到,但是如果再次进入聊天室的话,拉取历史聊天消息却可以

拉取到插入的消息。

被难住了3天,后来发现,服务端插入消息 也是以一个用户向聊天室的方式插入。例如 用户A 现在在聊天室,服务端现在以用户A 的身份插入一条消息,这条消息 只有用户A 接受不到,其他用户是可以接受到的。

问了下融云 工单,不知道是我表述不清还是 融云那边程序员理解不了, 最后还是没有搞清楚。

所以我们这边只能使用一个聊天室不存在的ID 去发送这条消息。

后来发现不止服务端插入,我们客户端调用SDK发送消息也一样,只不过是被逻辑处理了,所以一时没有发现。

————————————————————————我会告诉你 ,写这么多东西只是我上班太无聊,打发时间的吗。。。。。。

### 回答1: 为了实现实时通讯功能,可以在uniapp项目中接入融云。首先在融云官网注册账号,并创建应用获取appKey和appSecret。随后可以使用uniapp插件市场里的融云插件,或者手动导入融云SDK。 在uniapp项目中引入融云插件或SDK后,可以调用相应的API实现聊天功能。常用的API包括连接服务器、发送消息、接收消息、获取会话列表等。需要注意的是,融云提供了多种类型的消息,包括文字、图片、语音、文件等,需要根据具体需求选择合适的类型。 为了方便开发和维护,可以对融云API进行封装。比如封装发送消息的方法,可以提供一个参数对象,包含消息类型、接收者、发送者、内容等信息,内部调用融云API发送消息。这样可以在应用中简化代码,提高开发效率和程序可维护性。 总之,接入融云是实现实时通讯的有效方法,通过调用融云提供的API实现聊天功能。需要注意选择合适的消息类型,并封装API以方便开发和维护。 ### 回答2: 在UniApp中接入融云,需要进行如下步骤: 1.注册融云账号并创建应用。可以在融云官网进行注册并创建应用,获取AppKey和AppSecret。 2.下载并安装融云SDK。在融云官网下载SDK并按照官方文档进行安装。 3.在UniApp项目中安装uni-app-plugin-im插件。该插件已经完成了对融云SDK的封装,可以便于开发者进行快速开发。安装方法:在终端中运行npm install @dcloudio/uni-app-plugin-im --save命令。 4.在manifest.json文件中添加插件配置。在"uni-app-plugin-im"节点中添加"appKey"和"appSecret"节点并填入相应的信息。 5.在需要使用融云的页面中使用插件提供的API进行开发。例如,可以使用im.createDiscussion()创建讨论组,使用im.sendMessage()发送消息等等。 总之,通过将融云SDK与uni-app-plugin-im插件进行结合,可以使得在UniApp中接入融云变得十分简单快捷,方便开发者快速开发出有IM功能的app。 ### 回答3: Uniapp是基于Vue.js框架的移动端开发框架。融云是一款强大的即时通讯云服务,支持文字、语音、图片、视频等多种形式的消息传递。将Uniapp与融云结合起来,可以实现高效、流畅的即时通讯功能。 首先,我们需要在Uniapp项目中引入融云SDK,并进行初始化。可以在main.js文件中进行如下配置: ```js import RongIM from 'vue-rong-im'; Vue.use(RongIM, { appKey: 'your appKey', }); ``` 其中,appKey是融云提供的用于标识应用程序的唯一标识符,可以在融云开发者平台上获取。 接下来,我们可以在需要使用即时通讯功能的组件中,引入融云的组件并使用其提供的接口进行消息的发送和接收。 ```js <template> <div> <!-- 聊天窗口 --> <rong-im :conversationType="conversationType" :targetId="targetId"></rong-im> <!-- 输入框和发送按钮 --> <div> <input type="text" v-model="message"> <button @click="send">发送</button> </div> </div> </template> <script> import { RongIMClient } from 'rong-im-lib'; export default { data() { return { message: '', conversationType: RongIMClient.ConversationType.PRIVATE, targetId: 'target id', }; }, methods: { send() { // 调用融云SDK的sendMessage方法发送消息 RongIMClient.getInstance().sendMessage( this.conversationType, this.targetId, { content: this.message }, { onSuccess() { console.log('发送成功'); }, onError(error) { console.log('发送失败:', error); }, }, ); }, }, }; </script> ``` 在上述代码中,我们使用了融云提供的vue-rong-im组件作为聊天窗口,同时调用了融云SDK的sendMessage方法发送消息。在发送成功或失败时,可以通过回调函数进行相应的处理。 综上所述,通过在Uniapp中接入融云,我们可以快速实现高效、流畅的即时通讯功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值