2019独角兽企业重金招聘Python工程师标准>>>
前段时间在研究写个简单的社交app,初步有成,给大家分享点小心得。目前市面的社交软件越来越多,实现及时聊天的功能也是很多开发新手们需要掌握的一项技能。
在要实现这个功能前,我上网百度了很多关于及时通信的框架工具等等,所幸功夫不负有心人,在mob官网(http://www.mob.com/)找到一个简单好用并且免费的sdk工具-MOBIM,仔细看了下文档,集成步骤也很简单,只需要在gradle配置下提示的文件就好,具体的我这里就不说了,官网介绍的还是比较仔细的,需要注意的是这个MOBIM的sdk是基于用户登录系统使用的,也就是说开发者需要有自己的登录系统,值得一提的是mob官网竟然也有用户系统的sdk-UMSSDK,如果只是先测试下的小伙伴可以先集成下UMSSDK,集成方法也是gradle配置,很方便,代码部分,各位可以看下问文档说明,我这里就不多做赘述了。
集成好后,登录成功后,设置用户信息(IM会使用此用户进行通讯)
MobSDK.setUser(id, name,"https://lanre.smartemple.cn/image/share.png", null);
登陆进自己的账号后会看到有个自己的ID,这个就相当于是自己的账号,添加好友需要输入对方的ID才行,类似于QQ微信等通讯工具。这个ID在后面代码里发送消息时也会传到这个值,当然首先要获取到这个发送消息的对象并创建会话,这里第一传的值就是之前说的ID
IMMessage imMessage
=MobIM.getChatManager().createTextMessage("00f3f1d0a7429000","abclarry",
IMConversation.TYPE_USER);
MOBIMCallback是MOBIM所有异步操作的结果回调,这里发送消息也需要这个回调:
MobIM.getChatManager().sendMessage(imMessage, new MobIMCallback() {
public void onSuccess(Void result) {
// TODO 处理消息发送成功的结果
System.out.println("---------------------发送消息成功");
Toast.makeText(MainActivity.this,"发送消息成功",0).show();
}
public void onError(int code, String message) {
// TODO 根据错误码(code)处理错误返回
System.out.println("---------------------失败"+message+"--CODE"+code);
}
});
}
});
这样就可以实现发送信息啦。
到这里或许会有人问如何获取到会话列表呢,其实文档也提供了一个方法
MobIM.getChatManager().getAllLocalConversations(MobIMCallback> conversations)
好友是在list集合里,同样的也需要MOBIMCallback这个回调去处理:
MobIM.getChatManager().getMessageList("00f3f1d0a7429000", IMConversation.TYPE_USER, 5, 1, new MobIMCallback>() {
@Override
public void onSuccess(List imMessages) {
System.out.println("----------1" + imMessages);
for (int i = 0;i>>"+imMessage.getBody());
}
Toast.makeText(MainActivity.this,"打印列表成功请看日志",0).show();
}
@Override
public void onError(int i, String s) {
System.out.println("----------" + s);
}
});
这里我只是举例了几个常用的方法演示,更多的功能实现在文档都是有说明的,有兴趣的可以看下。 整个实现过程其实算是比较简单的,有些个人的需求在文档没有标注的问了下他们的技术支持小哥哥,也得到了耐心的解答,工具是免费也挺好用的,关键有坑还可以找客服帮忙,算是我们这样新手菜鸟的福利啦,可以安利下,测试后发送信息也挺快的,几乎满足了日常聊天的全部需求了,还是很棒哒!
demo地址https://github.com/zhangshuai0321/allen228