android开发即时通讯
A. 如何写一个即时通讯软件
网易云信致力于互联网络技术的开发与研究,使开发者通过简单集成客户端SDK和云端开放API,快速实现强大的移动互联网IM和音视频功能。在场景化方面,深入各行各业,狠抓痛点,第一时间包装相应的场景方案,助力企业解决行业难题。同时,网易云信...
2020-03-09回答者:网易(杭州)网络有...10
如何编写一个即时通讯软件
答:可以用bmob做后端,有即时通讯的demo 昨天下班前发布了最新的Bmob_IM_V1.1.2版本的SDK和应用Demo,还未正式通知大家,但还是有人察觉到了,那么,这一次版本更新了什么呢? 主要是针对大家都比较关心的问题进行了集中解决。 一、更新功能: 1、...
2016-12-21回答者:C9006122个回答1
如何搭建一个自己的IM即时通讯聊天软件?
问:如何搭建一个自己的IM即时通讯聊天软件?
答:搭建一个自己的IM即时通讯聊天软件的框架如下:1、CIM 中的各个组件均采用 Spring Boot 构建。2、采用 Netty + Google Protocol Buffer 构建底层通信。3、Redis 存放各个客户端的路由信息、账号信息、在线状态等。4、Zookeeper 用于 IM-server ...
2018-09-03回答者:容联云5个回答1
怎么用java写一个即时通讯软件?
答:我看到过一个,链接给你,用websocket的 https://github.com/TooTallNate/Java-WebSocket 里面有个example就是im的
2013-05-24回答者:micoud_104个回答1
写一个简单的即时通讯软件需要掌握哪些基础的网络知识
答:掌握TCP/UDP网络协议,还要知道Socket知识,会java或者C#或者c语言的编程,这样就可以通过语言来实现网络的通讯。建议看看Openfire,采用的协议是XMPP。
2017-02-16回答者:天1234569411个回答
请问可以用哪些语言编写即时通讯软件?
问:并请说明那种语言最好
答:当然要用JAVA和C++等多程序开发. 你可以看这家企业即时通讯软件www.kehutone.com
2007-03-14回答者:138138577983个回答
我要用java写一个简单的即时通讯软件,该怎么写。...
问:我们打算先用http实现信息收发,有人会做吗。有demo的话求发我感谢。
答:你是说电脑端手机端都要开发吗,电脑端一般用socket, Android端用XMPP5通信
2015-03-10回答者:沦落人19921个回答
自己写的小型的即时通讯软件如何像QQ一样实现聊天...
答:用socket或者serversocket,也可以使用数据包。必须要有这个,就可以在不同的计算机上实现即时通讯,但是,其功能与专业的聊天软件差别比较大
2010-11-08回答者:孙74213个回答5
求大神帮写用JAVA编写一个即时通信的软件有常 谢谢了
问:会的留言 可商量后再写
答:描述得太不够具体,,,,,是单对单、还是可以单对多;要不要分群;要不要图片;等
2020-06-17回答者:知道网友2个回答1
开发一个即时通讯软件需要什么样的人员?
问:开发一个即时通讯软件需要什么样的人员?比如说需要几个程序员,多少平面...
答:要看规模,不知道你要做多大的 架构师 起码1个,如果大的话要两个 数据库设计 人员 美工1-2个 程序员依大小而定,小的话3,4个 大的话就每准了 如果作为产品的话,时间将会很长,自己玩,自己用的话,就很快了
B. 开发android即时通讯,需要学习什么
Android系统是基于linux为核心的,而linux是用c语言和少量汇编语言写成的,如果你想研究android,就去学c语言吧。
C. IM即时通讯开发如何实现Android版智能心跳机制
IM即时通讯开发如何实现Android版智能心跳机制。
大体思路
a)延迟心跳测试法:这是测试结果准确的前提保障,我们认为长连接建立后连续三次成功的短心跳就可以很大程度的保证下一次心跳环境是正常的。
b)成功一次认定,失败连续累积认定:成功是绝对的,连续失败多次才可能是失败。
c)临界值避免:我们使用比计算出的心跳稍微小一点的值做为稳定心跳避免临界值。
d)动态调整:即使在一次完整的智能心跳计算过程中,我们没有找到最好的值,我们还有机会来进行校正。
方案需考虑到影响连接寿命的思素
在Android下,不管是GCM,还是微信,都是通过TCP长连接来进行消息收发的,TCP长连接存活,消息收发就及时,所以要对影响TCP连接寿命的因素进行研究。
1、NAT超时
大部分移动无线网络运营商都在链路一段时间没有数据通讯时,会淘汰 NAT 表中的对应项,造成链路中断(NAT超时的更多描述见附录9.1)。NAT超时是影响TCP连接寿命的一个重要因素(尤其是国内),所以客户端自动测算NAT超时时间,来动态调整心跳间隔,是一个重要的优化点。
2、DHCP的租期 (lease time)
目前测试发现安卓系统对DHCP的处理有Bug,DHCP租期到了不会主动续约并且会继续使用过期IP,这个问题会造成TCP长连接偶然的断连。(租期问题的具体描述见附录9.2)。
3、网络状态变化
手机网络和WIFI网络切换、网络断开和连上等情况有网络状态的变化,也会使长连接变为无效连接,需要监听响应的网络状态变化事件,重新建立Push长连接。
心跳范围选择
1、前后台区分处理:
为了保证微信收消息及时性的体验,当微信处于前台活跃状态时,使用固定心跳。微信进入后台(或者前台关屏)时,先用几次最小心跳维持长链接。然后进入后台自适应心跳计算。这样做的目的是尽量选择用户不活跃的时间段,来减少心跳计算可能产生的消息不及时收取影响。
2、后台自适应心跳选择区间:
可根据自身产品的特点选择合适的心跳范围。
自适应心跳算法量化描述
因为每个网络的NAT时间可能不一致。所以需要区分计算,数据网络按subType做关键字,WIFI按WIFI名做关键字。对稳定的网络,因为NAT老化时间的存在,在自适应计算态的时候,暂设计以下步骤在当前心跳区间逼近出最大可用的心跳。 即时通讯聊天软件app开发可以加蔚可云的v:weikeyun24咨询
a)变量说明:
[MinHeart,MaxHeart]——心跳可选区间。
successHeart——当前成功心跳,初始为MinHeart
curHeart——当前心跳初始值为successHeart
heartStep——心跳增加步长
successStep——稳定期后的探测步长
经过该流程,会找到必然使心跳失败的curHeart(或者MaxHeart),为了保险起见,我们选择比前一个成功值稍微小一点的值作为后台稳定期的心跳间隔。
影响手机网络测试的因素太多,为了尽量保证测试结果的可靠性,我们使用延迟心跳测试法。在我们重新建立TCP连接后,先使用 短心跳连续成功三次,我们才认为网络相对稳定,可以使用curHeart进行一次心跳测试。图4-2显示了一次有效心跳测试过程。图4-3显示了在没有达到稳定网络环境时,我们会一直使用固定短心跳直到满足三次连续短心跳成功。
使用延迟心跳测试的好处是,可以剔除偶然失败,和网络变化较大的情况(如地铁),使测试结果相对可靠(五次延迟测试确定结论)。同时在网络波动较大的情况,使用短心跳,保证收取消息相对及时。
c)运行时的动态调整策略(已经按测算心跳稳定值后)
NAT超时值算出来后,在维持心跳的过程中的策略。
- 无网络、网络时好时坏、偶然失败、NAT超时变小:
在后台稳定期发生心跳发生失败后,我们使用延迟心跳测试法测试五次。如果有一次成功,则保持当前心跳值不变;如果五次测试全失败,重新计算合理心跳值。该过程如图4-4所示,有一点需要注意,每个新建的长连接需要先用短心跳成功维持3次后才用successHeart进行心跳。
NAT超时变大:
以周为周期,每周三将后台稳定态调至自适应计算态,使用心跳延迟法往后探测心跳间隔。
- successHeart是NAT超时临界值:
因为我们现在选择的是一个比successHeart稍小的值作为稳定值,所以在计算过程中可以避开临界值。当运营商在我们后台稳定期将NAT超时调整为我们当前计算值,那么由于我们每周会去向下探索,所以下一周探测时也可以及时调整正确。
d)冗余Sync和心跳
在用户的一些主动操作以及联网状态改变时,增加冗余Sync和心跳,确保及时收到消息。
1、当用户点亮屏幕的时候,做一次心跳。
2、当微信切换到前台时,做一次Sync。
3、联网时重建信令TCP,做一次Sync。
可能存在的风险及预防措施
DHCP租期因素:
1、问题:根据目前的测试结果显示,安卓不续约到期的IP Bug,会导致TCP连接在不确定的时间点失效,从而会导致一次心跳失败。
2、预防:统计后台稳定期的心跳成功率,上报给后台。后台可以按地区分网络监控这个指标的波动,并且后台可以根据不同的波动,动态调整某区域特定网络下可选的心跳区间。
NAT超时介绍
因为 IP v4 的 IP 量有限,运营商分配给手机终端的 IP 是运营商内网的 IP,手机要连接 Internet,就需要通过运营商的网关做一个网络地址转换(Network Address Translation,NAT)。简单的说运营商的网关需要维护一个外网 IP、端口到内网 IP、端口的对应关系,以确保内网的手机可以跟 Internet 的服务器通讯。
D. 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的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。