如何编写一个即时通讯软件

如题所述

可以用bmob做后端,有即时通讯的demo
昨天下班前发布了最新的Bmob_IM_V1.1.2版本的SDK和应用Demo,还未正式通知大家,但还是有人察觉到了,那么,这一次版本更新了什么呢?

主要是针对大家都比较关心的问题进行了集中解决。

一、更新功能:

1、新增支持陌生人聊天,允许发送给非好友用户;

2、新增支持自定义消息发送,便于开发者扩展;

3、新版本大幅度增加稳定性和及时性,保证百分百到达;

4、排除web后端推送对客户端的影响。

二、更新讲解:

1、如果你希望能和所有人(不局限于好友关系)进行聊天,那么这一版本就解决了这个问题。

如果你想看到效果,可以点击附近的人,你找到一个非好友用户,再查看他的资料,这一页面下方有个“发起会话”的按钮,这里就可以和陌生人聊天啦。(不要问我,为什么我搜索附近的人没数据呢?你一个新建的key,连注册用户都没有,那附近的人怎么可能会显示出来?)

2、如果你希望发送任意格式的消息,那么你只需要调用如下方法即可:

BmobChatManager.getInstance(this).sendJsonMessage(String json, String targetId);
复制代码
注:第一个参数:你要发的Json格式的字符串,第二个参数,就是对方的objectId

但关于发送的Json格式遵循一定的规范,具体可查看:点我。

然后,你就需要在MyMessageReceiver的广播接收器中自行解析你所定义格式的消息啦。

3、V1.1.2版本大幅度增强了及时性和稳定性,能够保证到达率。

由于推送服务有时候会出现消息丢失的情况,并不能保证消息一定被对方接收到,故在此基础上增加了一个定时检测服务,定时时间可以由开发者自行设定。

你需要开启定时检测服务的话,需要在主程序界面的onCreate方法中调用如下方法:

BmobChat.getInstance(this).startPollService(30)
复制代码
然后在onDestory方法里调用如下方法取消检测服务:

BmobChat.getInstance(this).stopPollService()
复制代码

另外,需要在你的AndroidManifest.xml里面加上如下一段代码

<!-- 启动定时检测操作 -->

<service android:name="cn.bmob.im.poll.BmobPollService">

<intent-filter>

<action android:name="cn.bmob.im.service.BmobPollService"/>

</intent-filter>

</service>
复制代码

4、有的同学没有两部真机,会从web后台推送消息给客户端,之前的版本会使得客户端奔溃,这一版排除了后端推送对客户端的影响。

三、使用Bmob_IM_SDK时需要注意的问题如下:

1、请使用两台真机测试,请不要用模拟器来测试,模拟器是接收不到推送消息的。

2、很多人由于没有两部真机,会采用一个手机注册两个不同的账号,这样来回切换账户来测试聊天,这种方式达不到测试的效果,虽然这一版本的改进使得这种方式能够收到消息,但是及时性比较低。而之前的版本,这种方式是收不到消息的,故不建议这样测试,只有两部真机才能达到真实的聊天效果。

3、请到Bmob官网注册申请应用的Application ID并在SplashActivity类中完成初始化操作。

4、有很多人导入了工程后发现有这个错:java.lang.IncompatibleClassChangeError: cn.bmob.im.project,这个是因为BmobIM_V1.1.2是基于BmobSDK_v3.2.3_0919混淆打包的,所以如果你要用的话,这两个包应该是一起导进去的,替换之前的Bmobsdk和BmobIM包。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-20
想多了,一个团队吧,模仿qq做吧,估计的花点功夫
相似回答