实用的即时通讯(IM)

简介:

快速集成
一. 获取AppKey
申请MobSDK的appkey流程(见官网)
二. 配置gradle
1、将下面的脚本添加到您的根模块build.gradle中:

buildscript {
    // 添加MobSDK的maven地址
    repositories {
        maven {
            url "http://mvn.mob.com/android"
        }
    }
 
    dependencies {
        // 注册MobSDK
        classpath 'com.mob.sdk:MobSDK:+'
    }
}

2、在使用MobIM模块的build.gradle中,添加MobSDK插件和扩展,如:


// 添加插件
apply plugin: 'com.mob.sdk'
 
// 在MobSDK的扩展中注册MobIM的相关信息
MobSDK {
    appKey "d580ad56b***"
    appSecret "7fcae59a62342e7e2759e9e397c82***"
 
    MobIM {}
}

三. 添加代码
1、初始化MobIM
如果您没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用:

MobSDK.init(this);

以初始化MobSDK。
2、调用API
在应用启动后,用户自己的用户登录系统登录成功后调用如下api,设置用户到MobIM即可。
登录成功后,设置用户信息(IM会使用此用户进行通讯)

MobSDK.setUser("用户ID", "用户昵称","用户头像地址", null);

在需要监听消息回调的地方,调用如下api,设置消息监听

MobIM.addMessageReceiver(MobIMMessageReceiver mobMsgRever);

在IM程序时,调用移除监听消息接口:

MobIM.removeMessageReceiver(MobIMMessageReceiver mobMsgRever);

注:MobIMMessageReceiver是处理收到消息的回调接口,根据获取的消息进行处理,接口实现如下:

public interface MobIMMessageReceiver {
    void onMessageReceived(List<IMMessage> messageList);
}

获取会话列表

MobIM.getChatManager().getAllLocalConversations(MobIMCallback<List<IMConversation>> conversations)

发送消息

MobIM.getChatManager().sendMessage(msg, new MobIMCallback<Void>() {
    public void onSuccess(Void result)  {
        // TODO 处理消息发送成功的结果
    }
    public void onError(int code, String message)  {
        // TODO 根据错误码(code)处理错误返回
    }
});

备注:
MobIM并不自带用户系统(没有登录与注册操作,需要用户有自己的),用户成功登陆您自有用户系统后,开发者可对接登录MobIM中相对应的用户。

MOBIMCallback

 
MOBIMCallback是MOBIM所有异步操作的结果回调,包含下面2个方法:
1
备注:MOBIM并不自带用户系统(没有登录与注册操作,需要用户有自己的),用户成功登陆您自有用户系统后,开发者可对接登录MOBIM中相对应的用户。本演示DEMO直接使用设备ID作为已登录成功的标识
四、 混淆设置
MobIM已经做了混淆处理,再次混淆会导致不可预期的错误,请在您的混淆脚本中添加如下的配置,跳过对MobIM的混淆操作:

-keep class com.mob.**{*;}
-dontwarn com.mob.**

五、注意事项

  1. MobSDK默认为MobIM提供最新版本的集成,如果您想锁定某个版本,可以在MobIM下设置“version “某个版本””来固定使用这个版本
  2. 如果使用MobSDK的模块会被其它模块依赖,请确保依赖它的模块也引入MobSDK插件,或在此模块的gradle中添加:
repositories {
    jcenter()
}

可参考Sample的github开源地址:
https://github.com/MobClub/MobIM-for-Android

目录
相关文章
|
12月前
|
安全 前端开发 关系型数据库
IM即时通讯系统开发技术规则
IM即时通讯系统开发涵盖客户端与服务器端,涉及前端、后端、网络通信及多媒体处理等技术领域,支持文字、语音、图片、视频等多种实时交流方式。开发流程包括需求分析、技术选型、系统设计、开发实现、测试优化及部署维护等阶段,需关注网络通信、多媒体处理、安全性及可扩展性等关键技术点,广泛应用于社交、客服、团队协作及游戏等领域。
|
3月前
|
前端开发 JavaScript 网络安全
Web网页端即时通讯源码/IM聊天源码RainbowChat-Web
RainbowChat-Web是一套基于MobileIMSDK-Web的网页端IM系统。不同于市面上某些开源练手或淘宝售卖的demo级代码,RainbowChat-Web的产品级代码演化自真正运营过的商业产品,其所依赖的通信层核心SDK已在数年内经过大量客户及其辐射的最终用户的使用和验证。RainbowChat-Web同时也是移动端IM应用RainbowChat的姊妹产品。
117 0
|
28天前
|
移动开发 网络协议 小程序
鸿蒙NEXT即时通讯/IM系统RinbowTalk v2.4版发布,基于MobileIMSDK框架、ArkTS编写
RainbowTalk是一套基于开源即时通讯讯IM框架 MobileIMSDK 的产品级鸿蒙NEXT端IM系统。纯ArkTS编写、全新开发,没有套壳、也没走捷径,每一行代码都够“纯血”。与姊妹产品RainbowChat和RainbowChat-Web 技术同源,历经考验。
62 1
|
2月前
|
缓存 移动开发 网络协议
纯血鸿蒙NEXT即时通讯/IM系统:RinbowTalk正式发布,全源码、纯ArkTS编写
RainbowTalk是一套基于MobileIMSDK的产品级鸿蒙NEXT端IM系统,目前已正式发布。纯ArkTS、从零编写,无套壳、没走捷径,每一行代码都够“纯”(详见:《RainbowTalk详细介绍》)。 MobileIMSDK是一整套开源IM即时通讯框架,历经10年,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp、鸿蒙NEXT,服务端基于Netty编写。
165 1
|
2月前
|
测试技术 开发工具 git
基于WebSocket即时通讯im源码| uniapp即时通讯源码| 私有化部署SDK视频安装教程
本项目是基于 ThinkPHP7 和 Swoole 构建的即时通讯 IM 源码,打造了一个简洁美观、移动优先的渐进式 Web 应用。支持从源码构建,并提供详细的安装、配置与使用说明。仓库地址:im.jstxym.top。
|
4月前
|
网络协议 Java 网络安全
全平台开源即时通讯IM聊天框架MobileIMSDK的服务端开发指南,支持鸿蒙NEXT
全平台开源即时通讯IM聊天框架MobileIMSDK的服务端开发指南,支持鸿蒙NEXT
269 4
|
5月前
|
网络协议 Java 开发工具
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
287 1
|
11月前
|
存储 网络协议 前端开发
基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.7版已发布
Android端主要更新内容: 1)[优化] 优化了首页“消息”列表中单聊类型未正确同步时的收发消息和点击后的处理逻辑; 2)[优化] 优化了首页“消息”列表中同一好友和陌生人会话不能自动合并的问题;
253 2
|
10月前
|
Rust 前端开发 JavaScript
Wasm在即时通讯IM场景下的Web端应用性能提升初探
简单的来说,Wasm就是使用C/C++/Rust等语言编写的代码,经过编译后得到汇编指令,再通过JavaScript相关API将文件加载到Web容器中(即运行在Web容器中的汇编代码)。Wasm是一种可移植、体积小、加载快速的二进制格式,可以将各种编程语言的代码编译成Wasm模块,这些模块可以在现代浏览器中直接运行。尤其在涉及到GPU或CPU计算时优势相对比较明显。
176 0