提示:MobileIMSDK的Android客户端lib包支持Android 4.0(含)及以上版本。
dependencies { // MobileIMSDK的依赖库 implementation 'com.google.code.gson:gson:2.9.0' implementation group: 'io.netty', name: 'netty-all', version: '4.1.50.Final' // MobileIMSDK的SDK库 implementation files('libs/MobileIMSDKServer_META.jar') implementation files('libs/MobileIMSDK4a_tcp.jar') }
// 设置AppKey ConfigEntity.appKey = "5418023dfd98c579b6001741"; // 设置服务器ip和服务器端口 // ConfigEntity.serverIP = "192.168.82.138"; // ConfigEntity.serverPort = 8901; // MobileIMSDK核心IM框架的敏感度模式设置 // ConfigEntity.setSenseMode(SenseMode.MODE_15S); // 设置最大TCP帧内容长度(不设置则默认最大是 6 * 1024字节) // LocalSocketProvider.TCP_FRAME_MAX_BODY_LENGTH = 60 * 1024; // 开启/关闭DEBUG信息输出 // ClientCoreSDK.DEBUG = false; // 【特别注意】请确保首先进行核心库的初始化(这是不同于iOS和Java端的地方) ClientCoreSDK.getInstance().init(this.context);
public class ChatBaseEventImpl implements ChatBaseEvent { // 登陆/掉线重连结果通知 @Override public void onLoginResponse(int errorCode) { if (dwErrorCode == 0) Log.i(TAG, "登录成功“); else Log.i(TAG, "登录失败,错误代码:" + errorCode); } // 掉线事件通知 @Override public void onLinkClose(int errorCode) { Log.i(TAG, "网络连接出错关闭了,error:" + errorCode); } }
public class ChatMessageEventImpl implements ChatMessageEvent { // 收到即时通讯消息通知 @Override public void onRecieveMessage(String fingerPrintOfProtocal, String userid, String dataContent, int typeu) { Log.i(TAG, "收到来自用户"+userid+"的消息:"+dataContent); } // 收到服务端反馈的错误信息通知 @Override public void onErrorResponse(int errorCode, String errorMsg) { Log.i(TAG, "收到服务端错误消息,errorCode="+errorCode+", errorMsg="+errorMsg); } }
public class MessageQoSEventImpl implements MessageQoSEvent { // 消息无法完成实时送达的通知 @Override public void messagesLost(ArrayList<;Protocal> lostMessages) { Log.i(TAG, "收到系统的未实时送达事件通知,当前共有" +lostMessages.size()+"个包QoS保证机制结束,判定为【无法实时送达】!"); } // 对方已成功收到消息的通知 @Override public void messagesBeReceived(String theFingerPrint) { if(theFingerPrint != null) Log.i(TAG, "收到对方已收到消息事件的通知,消息指纹码="+theFingerPrint); } }
ClientCoreSDK.getInstance().setChatBaseEvent(new ChatBaseEventImpl()); ClientCoreSDK.getInstance().setChatMessageEvent(new ChatMessageEventImpl()); ClientCoreSDK.getInstance().setMessageQoSEvent(new MessageQoSEventImpl());
new LocalUDPDataSender.SendLoginDataAsync(用户名, 密码){ @Override protected void fireAfterSendLogin(int code) { if(code == 0) Log.i(TAG, "数据发送成功!"); else Log.i(TAG, "数据发送失败。错误码是:"+code+"!"); } }.execute();
new LocalUDPDataSender.SendCommonDataAsync("这是一条测试信息...", 对方的userId, true){ @Override protected void onPostExecute(Integer code) { if(code == 0) Log.i(TAG, "数据已成功发出!"); else Log.i(TAG, "数据发送失败。错误码是:"+code+"!"); } }.execute();
// MobileIMSDK核心IM框架的敏感度模式设置 ConfigEntity.setSenseMode(SenseMode.MODE_15S);
鉴于目前主流的网络编程都提倡异步模型的情况下,MobileIMSDK的服务端反馈回来的登陆结果自然也是异步到达,但这对开发者来说,只要代码处理得当,实现起来同样简单:即登陆请求发起前设置一个登陆结果观察者需可。
# 保留MobileIMSDK的Protocal相关类 -keep class net.x52im.mobileimsdk.server.protocal.** { *; } # 保留Google GSON相关API: -keep class sun.misc.Unsafe { *; } -keep class com.google.gson.stream.** { *; } -keep class com.google.gson.** { *;}
来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用:DarcyIM 发表于 2024-01-11 15:06 怎么体验功能呢?大佬
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.125000 second(s), 45 queries , Gzip On.