提示:MobileIMSDK的Java客户端lib包支持Java 1.6(含)及以上版本。
// 设置AppKey ConfigEntity.appKey = "5418023dfd98c579b6001741"; // 设置服务器ip和服务器端口 ConfigEntity.serverIP = 您的IM服务器IP地址或域名; ConfigEntity.serverUDPPort = 7901;
public class ChatBaseEventImpl implements ChatBaseEvent { // 登陆/掉线重连结果通知 @Override public void onLoginMessage(int dwUserId, int dwErrorCode) { if (dwErrorCode == 0) System.out.println("登录成功,当前分配的user_id="+dwUserId); else System.out.println("登录失败,错误代码:" + dwErrorCode); } // 掉线事件通知 @Override public void onLinkCloseMessage(int dwErrorCode) { System.out.println("网络连接出错关闭了,error:" + dwErrorCode); } }
public class ChatTransDataEventImpl implements ChatTransDataEvent { // 收到即时通讯消息通知 @Override public void onTransBuffer(String fingerPrintOfProtocal, int dwUserid, String dataContent) { System.out.println("收到来自用户"+dwUserid+"的消息:"+dataContent); } // 收到服务端反馈的错误信息通知 @Override public void onErrorResponse(int errorCode, String errorMsg) { System.out.println("收到服务端错误消息,errorCode="+errorCode+", errorMsg="+errorMsg); } }
public class MessageQoSEventImpl implements MessageQoSEvent { // 消息无法完成实时送达的通知 @Override public void messagesLost(ArrayList<;Protocal> lostMessages) { System.out.println("收到系统的未实时送达事件通知,当前共有" +lostMessages.size()+"个包QoS保证机制结束,判定为【无法实时送达】!"); } // 对方已成功收到消息的通知 @Override public void messagesBeReceived(String theFingerPrint) { if(theFingerPrint != null) System.out.println("收到对方已收到消息事件的通知,消息指纹码="+theFingerPrint); } }
ClientCoreSDK.getInstance().setChatBaseEvent(new ChatBaseEventImpl()); ClientCoreSDK.getInstance().setChatTransDataEvent(new ChatTransDataEventImpl()); ClientCoreSDK.getInstance().setMessageQoSEvent(new MessageQoSEventImpl());
new LocalUDPDataSender.SendLoginDataAsync(用户名, 密码){ @Override protected void fireAfterSendLogin(int code) { if(code == 0) System.out.println("数据发送成功!"); else System.out.println("数据发送失败。错误码是:"+code+"!"); } }.execute();
new LocalUDPDataSender.SendCommonDataAsync("这是一条测试信息...", 对方的userId, true){ @Override protected void onPostExecute(Integer code) { if(code == 0) System.out.println("数据已成功发出!"); else System.out.println("数据发送失败。错误码是:"+code+"!"); } }.execute();
当然,因为MobileIMSDK的Java客户端是运行于PC平台,因而是否省电的问题是无需考虑的。但为了配合Android、iOS客户端以及服务端,Java端也需要进行设置。
// MobileIMSDK核心IM框架的敏感度模式设置 ConfigEntity.setSenseMode(SenseMode.MODE_15S);
MobileIMSDK的服务端反馈回来的登陆结果是异步到达,但这对开发者来说,只要代码处理得当,实现起来同样简单:即登陆请求发起前设置一个登陆结果观察者需可。
来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用:sunny1009 发表于 2019-11-25 17:06 您好,这个方法我下载的源码怎么只有一个参数onLoginMessage
引用:3jia 发表于 2022-02-06 10:59 有个疑问哈,可以不用登录吗。我的使用场景,就是端到端的传输。两个电脑
引用:JackJiang 发表于 2022-02-06 11:03 让用户无感知的自动登陆就好了。通信程序所谓的“登陆”其实就是建立长连接的过程,这路http短连接这种用 ...
引用:3jia 发表于 2022-02-06 14:47 感谢回复,因为我的使用场景是极端弱网环境,数据往返有5秒的延迟,单个数据包传输不超过1k(所以需要拆 ...
引用:JackJiang 发表于 2022-02-06 20:24 卫星网吗 另外,这种极端网络你可以试一下MobileIMSDK的UDP协议版本,udp协议在极端网络下比tcp表现要 ...
引用:3jia 发表于 2022-02-06 23:04 请问一下,MobileIMSDK的UDP协议版本,是如何解决拆包、分包的问题。
引用:ec0li@qq.com 发表于 2022-12-29 15:24 老大,请问,有没有 C#客户端的方案啊?谢谢
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.156250 second(s), 46 queries , Gzip On.