㈠ 请问如何开发android IM即时通讯软件
就想普通开发一样,用java开发客户端软件。主要是服务端比较难,需要服务器的。
㈡ 请问如何开发android IM即时通讯软件
主要是服务端比较难,需要服务器的。
㈢ 如何编写一个即时通讯软件
可以用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包。
㈣ Android 使用WebSocket实现即时通讯功能,聊天功能
之前做这个功能,记录一下。即时通讯(Instant Messaging)最重要的毫无疑问就是即时,不能有明显的延迟,要实现IM的功能其实并不难,目前有很多第三方,比如极光的JMessage,都比较容易实现。但是如果项目有特殊要求(领导不愿意花这份钱),那就得自己做了,所以我们需要使用WebSocket。
一.Android实现即时通讯功能
1.引入WebSock依赖
2.创建一个java类并继承WebSocketClient
其中onOpen()方法在websocket连接开启时调用,onMessage()方法在接收到消息时调用,onClose()方法在连接断开时调用,onError()方法在连接出错时调用。构造方法中的new Draft_6455()代表使用的协议版本,这里可以不写或者写成这样即可。
3.建立连接
二.如果只需要接收服务器传过来的消息
㈤ Android如何开发即时通讯功能
sdk最简单,自己搞可以根据XMPP协议,就是其他答案提到的openfire+asmack,但XMPP协议是基于xml的,冗长直接导致费流量费电,可以考虑在传输的时候自己加一层二进制协议
㈥ android 即时通信。。如何实现
Android现在即时通讯(或者消息推送)有好几个开源项目框架可以实现,可以使用XMPP来实现即时通信。
XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)。
1. XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分; 核心的XML流传输协议 基于XML流传输的即时通讯扩展应用 XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。 XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。
2.XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
3.传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送,要么用纯文本指令加空格加参数加换行苻的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片断发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。