环信IM(3.x)android版sdk集成小结

最近在写社交类的app时用到了环信IM功能,所以在此记之 留下些许脚印。

​集成方面大家可以到其官网查看api集成步骤,此处我分享些在集成过程中的一些小总结

1,环信是为广大开发者提供一个即时通讯的云平台,你只需要在你的应用中集成其sdk就能快速实现即时通讯功能。

2,其通讯模式:client1-->环信服务器-->client2,客户端1和客户端2之间的信息传递沟通时同过环信后台服务器来转发实现的。模式是:当client1给client2发送信息时,client1先将信息发送到环信服务器(sdk在client1将信息/聊天记录做一次存储),环信服务器​接收到client1接收到的消息后自动备份一份到服务器里(貌似是14天的时间),接着环信判断client2是否在线,如果在线直接发送,不在线则等到client2登录上线时再将消息推送给client2(client2本地也会做一次聊天记录的存储)

3,环信平台不提供好友管理业务体系,环信也不想知道​。具体的用户or好友业务逻辑操作还需要开发者自己写服务器。只是环信在注册用户时需要一个环信id和一个密码即可。若还要丰富用户的其他信息开发者只需在自己的服务器端数据库里添加所需的字段即可。

4,环信为我们的服务器端提供了一个rest api 用于服务器访问环信的一个接口。通过在我们的服务器端集成环信的restapi即可实现多项功能,比如获取好友,群组的所有聊天记录,对好友的​增加 删除修改查询等等(具体集成操作请查看其官方文档或demo)

5,经过上面一个简单的介绍后,我分享些在用户登录注册以及接收好友的消息的过程中的经验小结吧​:

环信的回调接口对象是处在调用者的[子线程中]可查看验证,所以访问UI控件时,必须要将操作UI的写在主线程中(Handler/runOnUiThread)

(1),注册时要运行在一个子线程中,因为要联网注册

 //开始注册【注意注册操作要开启一个线程,否则会注册失败】

       new Thread(new Runnable(){

          @Override

          public void run() {

              try{

                EMClient.getInstance().createAccount(singusrname,signuserpass);

                myHandler.sendEmptyMessage(1);

              } catch(HyphenateException e) {

                //注册失败会抛出HyphenateException

                e.printStackTrace();

                myHandler.sendEmptyMessage(2);

             }

          }

       }).start();

(2),用户登录  

 EMClient.getInstance().login(username,userpass, new EMCallBack();

 其登陆状态用回调接口来表现,回调接口里不能访问UI控件,

 否则程序报错(或接收不到消息),使用Handler,runOnUiThread(new Runnable());来解决

(3),在通过message设置消息的发送及接收状态:message.setMessageStatusCallback(newEMCallBack(){});

   时回调接口里访问UI控件的方法必须在主线程中执行,否则4.0系列的android系统后续接收不到消息。

    but6.0的可以接收得到但没有出现访问UI控件时显示的效果

 (4),异步的接口回调,对好友的业务操作在环信息后台是(同增同删)拉黑独立 

               更多使用细节大家也可以移步其官网(http://www.easemob.com/)​     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值