1.为什么人会做梦?

2.IM即时通讯开发如何实现Android版智能心跳机制

为什么人会做梦?

吃辣第二天长痘痘-获取电脑系统心跳值

首先,每个人都会做梦,只是梦的东西不一样吧了,作为我个人来说,我一般都是身体特别疲惫,或者白天胡思乱想了,晚上就容易做梦!有时候早晨醒了还记着梦到什么,到下午就忘记了,有时候2-3天才忘记!不怕你们笑,有几次我梦到了很好的**题材,早晨起来,我还跟老婆说,我要写下来,以后如果拍成**,一定会火。但是有时候梦到一些伤心的事,我也会去查周公解梦,但是每次过去了也就不了了之。

其实,梦这个东西都是脑子里的一些幻想,不用去太在意,醒了想想自己接下来一天的工作,还是要撸起袖子加油干,管那些干什么。古话说:日有所思,夜有所梦。讲的是白天思考多了,晚上就会做梦,人之所以会做梦,都是人体大脑的一些正常反应,不用太去在意。

但是,有时候一些特殊情况,或许科学也没法解释的。我感觉年轻人,只要你行的正,做的对。即使晚上做噩梦。第二天你也会笑着面对阳光。你说我说的对吗?

人之所以会做梦,跟你的大脑紧张,顾虑,思考,疲惫,熬夜,不正常的作息习惯,都有很大的关系,有时候偶尔做梦,都是人体正常现象!

我妈妈就正常做梦,因为我妈妈身体不太好,大脑神经衰弱,经常就做梦,有时候做梦害怕,我也会去安慰她,过去了忘记了。也就好了。

以后都是我的一些个人见解,说的不好,勿怪,都是真心回答,谢谢!

小时候我曾经带着这个问题问过父母,他们告诉我日有所思夜有所梦。歪着脑袋想想好像有点道理哦,我们梦里面的东西白天有想过,不过不一定是当天想的。梦里面很多东西是美好的,美梦成真是要通过努力才能实现。不努力只能是做梦而已,这个道理是长大了明白的。

据说,梦是一个人潜意识在头脑里的反映。

~~~~~~~~~~~~~~~~~~

《黄河之美》

黄河之水天上来,

奔流到海不复回。

蜿蜒千里山陕界,

壶口咆哮华夏魂。

老牛湾旁长城守,

碾盘沟里向东流。

鹳鹊楼上目千里,

乾坤湾前望陕北。

碛口古渡人文聚,

风雨祥甘物气和。

滋滋哺育无言润,

黄土儿女不老情。

注:黄河,流经山西全长965公里,属黄河中游。自山西省忻州市偏关县老牛湾入境,抵运城市芮城县风陵渡东折,南至运城市垣曲县碾盘沟出境,流经忻州、吕梁、临汾、运城4市19县560个村庄。

做梦 是人体一种正常的、必不可少的生理和心理现象。

人的睡眠一般由几个睡眠周期组成,每个睡眠周期为60min-90min,而睡眠周期又是由非快速眼动期(NREM)和快速眼动期(REM)组成。在REM睡眠阶段,人的眼睛会快速地无序转动,同时脑部的代谢水平处于较高水平,海马体等区域非常活跃。

我们所说的 做梦 ,就发生在REM这个时期。REM期是随着睡眠时间变长而呈现正相关的,这也解释了人类 做梦 的原因,也就是为什么人会 做梦

是人就会做梦,从来不做梦的人应该是没有的。做梦也分几种情况: 有失眠多梦,有偶尔做梦。

失眠和多梦是两个症状的叠加,梦是正常的生理现象,而失眠多梦与深睡眠期时间短,睡眠深度不够、睡眠质量不高有密切关系。引起失眠多梦常见的原因有四点:1.生理因素;2.环境因素;3.患者吃的药物或食物中存在兴奋等副作用;4.与年龄有关,年龄越大越容易做梦。

而偶尔做梦更是正常现象,俗话说得好:“日有所思,夜有所梦”,只要你经常想起的人和事或某种场景,就会时而在梦中出现。就拿我来说吧,老家是农村的,我进城已经十八年了,但每个月我总会梦见自己的故乡,梦见那里的叠翠山峰,那里的小溪长流,那里的竹林小路。还有故乡的水库和我家的吊脚楼,时常出现在我的梦中。虽然现在故乡发生了翻天覆地的变化,修了公路,不少人还有了小车,房屋也已经翻新,但我梦见的却永远停留在原来的样子。

其实做梦是我们人类正常的生理反应,人在入睡之后中枢神经系统会受到一定的抑制,特别是大脑皮层,但是又没有完全被抑制,所以还是会出现各种各样的景象。如果不是频繁做梦,不影响睡眠质量,次日晨起后没有感觉困倦不适,是不用太过担心,也不用特殊处理。但如做梦特别多,且梦境特清晰,会影响到第二天的工作或生活,考虑和精神压力过大有一定的关系。那平时一定要注意适度的缓解压力,在睡前可以喝温牛奶,不做过激的运动,以免影响到睡眠质量。

1.做梦是一种正常的生理现象

在睡眠周期中,有一个睡眠阶段叫快速眼动睡眠期,做梦就常常发生在这一阶段。

大多数人每天晚上会做 3~5 个梦,多的可能一晚做 7 个梦,每个梦的持续时间在 5~20 分钟左右。

不过对于大多数人来说,即使做了梦也会很快忘记自己做过梦以及做过什么梦。如果在快速眼动睡眠期被叫醒,就比较容易记住梦境。

2.睡眠阶段与做梦的关系

人的睡眠周期包括以下阶段:

浅睡眠 1 期

浅睡眠 2 期

浅睡眠 3 期

深睡眠

快速眼动睡眠

睡眠周期从浅睡眠进入深睡眠、快速动眼睡眠,再回到深睡眠、浅睡眠,每次快速眼动睡眠阶段一次比一次持续时间长,到最后一次,可以长达 1 个小时。

在快速眼动睡眠阶段,睡觉的人眼球会快速上下左右地动,脑电波变得像清醒状态一样,心率和血压也变得不规则,呼吸也变得急促。如果这个时候把他叫醒,他会说他正在做梦。

3.整晚做梦是否等于睡眠差?

国内外都有人对主诉失眠、整夜作梦或梦多的慢性失眠症进行过生理测验研究,客观的记录证明,这些主诉"梦多"、"整夜作梦"病人的睡眠周期和正常人并没有什么差别。

所以不管你能不能记住做过的梦,做梦都不是影响睡眠质量的重要因素。

4.存在不做梦的人吗?

每个人都会做梦,即使有人觉得自己并没有做过梦,那也是没记住罢了。

我们日常生活中有这样一句谚语叫:“日有所思,夜有所梦”。这句话对不对呢?应该说有一部分是经验之谈,也有一部分是科学根据。那么对梦的解释,古今中外都有很多解释。比如说中国的《周公解梦》。像欧洲最大的影响最深的叫弗洛伊德,他是奥地利的一位医生。他和神经官能症打交道以后,弗洛伊德写了一本书就叫做《梦的解析》,他基本的理论观点就是人有意识活动,无意识活动,那么在白天醒着的时候,意识活动控制这种无意识活动,所以有些欲望就不能够得以实现,得不到发泄。那么到晚上睡觉的时候,没有意识控制了,这个时候,无意识的这个欲望,就以梦的形式发泄出来,而且以梦的形式得到满足,这是一种叫精神分析理论。

02

这是当时他除了对正常人的睡眠解释外,对一些人还要取催眠术。比如说像这个照片,就是当时弗洛伊德做的催眠术。让这样一个被试坐在躺椅子上,他利用很慢,很低的语调来诱导,使他产生催眠状态。下面这个照片,我们看,一位女士处于催眠状态,身体很僵硬,头和脚用两个椅子把她垫起来,她身子就可能挺得很直,这个都是所谓催眠效应所产生的。正因为弗洛伊德能够解释正常人的一些梦,也能够解释一些病人的梦,还有一些催眠的技术,因此他的理论在欧洲,在中国都有很广泛的影响,就叫精神分析理论。

03

那么大体上来说,我们的睡眠是四到六个周期,所以上半夜的睡眠的梦境,一般和当天的以及最近一些日子发生的事情,也就是说和近事记忆相关。而下半夜的睡眠,这个梦境是和远事记忆相关,早年生活的一些经历相关。而黎明前也就是快要起床的时候,这个时候,这个梦就不着边际了,有很多稀奇古怪的,自己想不到的一些知觉成分偏多。而正是这部分的梦,人们记忆得最清楚。因为是快要起床之前,最后做的这个梦记忆就比较清楚。

04

我们除了知道这个梦的一般规律以外,还有很多睡眠和做梦的障碍。第一个最常见的就是梦游症。有些人,就是睡觉起来以后,他就无意识地从床上起来,可以去做很多事情,做完了以后躺在床上又睡觉。比如说过去我们没有自来水的时候,很多家庭都有缸,农村都要到井里去用水桶去挑水。那么这样精细的一些动作,他都能完成。把缸里的水挑满了回来,他接着睡觉。第二天早上起来,他却说谁把这缸水挑满了,其实是他自己做的。有些家庭主妇半夜起来,把衣服洗了,然后第二天,就问谁把我衣服洗得这么干净,实际是她自己做的,那么这种就是梦游症。可见他完成很多自动化的、精细的日常生活的动作,他能完成,但是仍然是无意识的,没有投射到意识当中来,没有形成真正的记忆。也就是说他不是在自觉意识控制下的一种行为反应,所以这种就叫梦游症。

05

还有一种叫做发作性睡病。这种发作性嗜睡症是在情绪激动,受到刺激的情况下,受到刺激随后就有一个单调的环境,这个时候他就白天正做着事,突然间一下子陷入深度睡眠,一下子,不管什么环境就躺倒在地下,有的人不躺倒,也站在那儿低着头,身体发出鼾声,睡得很鼾,这就发作性嗜睡症,那么十分钟、二十分钟以后,也会自然醒来,这也是一种睡眠障碍。

06

另外我们几乎每个人都有梦魇。这个时候,往往一醒来以后,被别人推醒以后,可能记得,说你做什么梦,说不很准确,但是大体知道是一种什么噩梦。像这样都是睡眠当中出现一些障碍,我们对这些问题要有个正确的认识。

07

但是为什么人要睡眠,要做梦,也就是说睡眠和做梦有什么功能呢?大体有这样几方面的功能。一个方面,就是要解除疲劳,休整身体。解除疲劳与休整身体是什么意思呢?就是什么叫疲劳呢?疲劳就是人无论是体力活动和脑力活动以后,能源的耗竭,所谓能源的耗竭,我们说,脑的能源主要是* 血液供给葡萄糖,是能源耗竭。体力和脑力活动需要的葡萄糖很多,如果从血液供给的葡萄糖还满足不了它的需要,这个时候它就会动用肌肉里面的肌糖原,肝脏里面的肝糖原,利用身体的储备。利用身体储备的这个过程当中就会产生一种叫乳酸的。这个乳酸,顾名思义是一种酸性的。那么这个酸性的东西多了,比如说我们爬山,我们觉得腿肚子又酸又硬,那你说一个鸡蛋放到醋里面,你看这个鸡蛋是不是硬了,鸡蛋的蛋白质肯定变硬。 乳酸积累多了,是疲劳的一种生理上,生化上的一种表现。那么睡眠就可以解除这种疲劳。同样这样就补充肝糖原,补充肌糖原,这是生理上的。

08

同时为了解除这个疲劳,那么睡着了,人的一切活动停止了,肌肉消耗也降低了,这个时候为了节能,体温也降低。所以我们睡眠要盖被,有的人睡眠越是好的人,越要盖被,甚至夏天也要盖上被。因为他休息的时候,他真正全部休息了,体温都降了,比正常体温要降低。所以他就会有冷的这个感觉。那么这个时候,还有一个功能,就是要合成新的蛋白质。我们成年人也有,比如说我们的红血球,我们的血液成分要隔一段时间换成新的,换就需要合成新的蛋白质,多半都是在晚间睡觉的时候合成。而儿童长身体的时候,是在夜间睡眠的时候合成大量的蛋白质,长个子。所以这个睡眠是解除疲劳与休整身体的一个必不可少的。因此人类要用三分之一的时间去休整身体,解除疲劳。

09

那么除了身体上,生理上是这样,在知识的增长也是必要的。我们知道,我们白天经历很多事情,我们的大脑要时时地记录,时时地监控,时时地记录你周围所发生的一切。不管你有意识的,还是无意识的,只要你眼睛一扫,所有的刺激都会跑到你大脑里面去。这样,特别是视觉这个信息量很大,这样多的信息,它白天是按照时间从早到晚,就把你的信息都储存到脑子里。当你睡眠的时候,脑子就会回放,一边回放,一边整理,然后根据不同的内容,分别把它放到脑子不同的功能回路里边。

另外,就是说夜间它还可以有学习的功能,这个功能,有很多科学家,最近二十多年有很多研究。比如说夜间学英语,夜间学一些音乐,那么对这个问题有不同的见解。有的人,试验的事实证明有的人有学习能力,有的人就证明不了。比如说nature和science这样一个国际知名的杂志上,最近几年也一直有讨论这个问题,就是夜间是不是能够学习?学习效果怎么样?这是一个值得继续深入研究的问题。

10

除了这个,今年2月份,nature有一篇文章,就是说睡眠中的顿悟和创新性。这张图左侧它给的是科学上的顿悟。是指一个缝纫机的发明者,是在夜间睡眠的时候,解决了轮子怎么样转,轮子之间怎么样衔接,这个缝纫机才能很好地工作。而右边图是给的一些艺术上的创新。比如说西方很有名的一个叫奇案,就构想不出来这个案子怎么发生的,白天就百思不得其解,结果他晚间一做梦,梦出来是怎么回事,第二天按照他梦的提示,他就解决了,解决了这个案子,破了。像这种在夜间睡眠当中,这个梦,有时候会带来顿悟,有时候会带来创新性。

下面我们看保持良好的心态,也是很重要的。那么我们说,睡眠以后,第二天感到精力充沛,心情很安适的这种感觉。如果做一些噩梦,噩梦很多第二天心情也不愉快,又觉得睡觉睡得不好。如果睡眠不充分,第二天就会心情焦虑,烦躁,爱发脾气,做事静不下心来。可见做梦是保持良好心态的一个必不可少的环节。

前面讲的就是人为什么会做梦。那么关于梦的科学理论,我们说尽管弗洛伊德,刚才我们讲的精神分析是在一百多年以前,可是真正对梦的科学解释,还是在20世纪20到30年代,第一个科学理论就是俄罗斯的伟大生理学家叫巴甫洛夫,他就用狗做条件反射的试验,这是第一个最早的。他明确地指出梦的本质是什么呢?梦的本质就是脑的抑制活动,而且还揭露了从清醒状态到睡眠要经过很多催眠相,这就解释了梦和睡眠障碍的问题,这是第一个比较科学的理论。

这是巴甫洛夫,* 左边这面是他的学生,对一个狗进行试验,狗在架子上面进行条件反射训练。巴甫洛夫的这个理论主要有三点:一点他说,睡眠的本质是大脑的弥散性抑制。脑可以兴奋,也可以抑制,它是两种基本的神经过程。那么脑是全脑的弥散性的抑制,就会进入睡眠状态。而这个梦是什么呢?是在普遍大脑弥散性的抑制背景上,一些警戒点的局部兴奋活动,就是梦。为什么梦没有逻辑?就是这个警戒点,普遍抑制的警戒点不断地在游动。为什么一定要保持警戒点,因为正是有了警戒点,所以你随时有危险的事情,别人随时喊你,你可以随时醒来。如果完全都抑制,那我叫不醒了,那不就是太危险了。所以这个警戒点的活动,就是梦的一个基础。

11

第三个贡献,他就说,从正常到清醒状态,到睡眠状态,要经过低常相,反常相,超反常相。而睡眠当中醒来的过程,正好是从超反常相,反常相,低常相再转到睡眠相清醒状态,那么这个解释了很多疾病的问题,很多睡眠障碍的问题。比如说低常相,我们说正常的时候,对于弱的刺激,我们给出弱的反应,强的刺激,我们就给强的反应。比如说肌肉,如果轻轻碰你一下,你可能手不大动,但是你有感觉。我使劲一掐,你疼了,你手一定会缩回去,那么这个弱的刺激,有弱的反应,强的刺激,有强的反应。反常相的时候相反了。就是说低的刺激,给强的反应,这个强的刺激,给弱的反应。咱们生活当中也有体会,比如说你睡眠想要睡觉,一开始你还没注意,过了一会儿,你会有一个阶段,什么呢?旁边有人小声说话,对你的刺激,你觉得特重,反而远远的砰、砰门响,你倒不在意,这个就是反常相。有很多精神失常和一些疾病,梦的一些障碍,就是催眠相所形成的。所以这个就是巴甫洛夫的科学理论。

入睡后大脑皮层没有被完全抑制,脑海中会出现某些情景,这是人类的正常生理现象,导致人类做梦的原因是大脑在清理白天的记忆时所产生的副产品,也可能是睡梦中随机脑电波导致的结果。偶尔做梦有利于身心 健康 ,可以释放压力,使身心愉悦,但频繁做梦可能是生活压力所致,有时候可能会通过睡觉做梦,获取灵感或吸收到新的知识

目前有两种解释。

第一种解释

做梦是人体一种正常的、必不可少的生理和心理现象。人入睡后,一小部分脑细胞仍在活动,这就是梦的基础。人为什么要做梦,不做梦会有什么反应呢?

正常的梦境活动,是保证机体正常活力的重要因素之一 。

科学工作者做了一些阻断人做梦的实验。即当睡眠者一出现做梦的脑电波时,就立即被唤醒,不让其梦境继续,如此反复进行,结果发现对梦的剥夺,会导致人体一系列生理异常,如血压、脉搏、体温以及皮肤的电反应能力均有增高的趋势,植物神经系统机能有所减弱,同时还会引起人的一系列不良心理反应,如出现焦虑不安、紧张、易怒、感知幻觉、记忆障碍、定向障碍等。显而易见,正常的梦境活动,是保证机体正常活力的重要因素之一。

梦是协调人体心理世界平衡的一种方式

由于人在梦中以右大脑半球活动占优势,而觉醒后则以左侧大脑半球占优势,在机体24小时昼夜活动过程中,使醒与梦交替出现,可以达到神经调节和精神活动的动态平衡。因此,梦是协调人体心理世界平衡的一种方式,特别是对人的注意力、情绪和认识活动有较明显的作用。

无梦睡眠不仅质量不好,而且还是大脑受损害或有病的一种征兆

最近的研究成果亦证实了这个观点,即梦是大脑调节中心平衡机体各种功能的结果,梦是大脑 健康 发育和维持正常思维的需要。倘若大脑调节中心受损,就形成不了梦,或仅出现一些残缺不全的梦境片断,如果长期无梦睡眠,倒值得人们警惕了。当然,若长期恶梦连连,也常是身体虚弱或患有某些疾病。

第二种解释:

所谓的梦,就是平日的愿望或恐惧在睡眠时不受抑制地显现。奥地利的学家及精神分析学派的创始人弗络伊德指出:“梦就是受抑制的潜意识上升为意识的东西。”

每个人都会做梦,而在我们的梦中经常会出现一些与考试有关的事情,其中多半都是梦见题很难,做不出来,而时间又紧,眼看就要到了,可还是做不出来,正在着急的时候,竟醒了。这说明考试给我们的心理带来很大的影响。还有一种情形是如果某人喜欢某人,虽然平时不能相见,甚至连说话的机会都没有,但是在梦中却能经常相见。然而醒来后对梦中的事会感到很遗憾、很痛苦。

一:做梦的原因。

1969年,埃默里大学的戴维.福克斯做了一个试验,当睡眠者处于异相睡眠状态而出现眼球激烈活动的时候,他便把受试者叫醒,问他刚才做了什么梦。然后将各种情况进行归纳得出以下结论。

受试者所梦见的事情多数是自己所关心的事情,如考试、爱情等,另外一些情况,如有的人在睡眠中口渴了,肚子饿了,或有尿意等,他们所梦见的也基本上都与这些事情有关。因此说,这些将各自的事项连接起来的梦中故事,根本没有什么重要意义。因此也有人认为,梦不过是将各种感情和事项连接起来的一种练习罢了。但有人通过电脑模型提出了有关梦的两种说。

一种说是英国的心理学家克里斯托弗.埃文斯提出的,他认为,梦就如同将电脑的终端取下之后,重新对程序进编制,然后加以检点,因此,睡眠就是切断了外界信号的输入,运动系统也静息了这样一种状态。在此基础上,梦再对大脑的程序进行检验,然后在重新编制,并加以润色,以此来训练大脑能把近期的信号应用于将来的事态的能力。

根据埃文斯的主张,我们人类可以说是一种 社会 性的动物,因此,必须将这种 社会 性动物分成不同的种类,或者按性格进行分类,而且这种过程必须迅速、敏捷,而做梦就可以使这种快速分类得到练习。

还有一种有力的学说也来自电子计算机模型。这一学说的提出者是因发明DNA双螺旋模型而出名的弗朗西斯.克里克。

克里克将“哺乳动物具有较大的新皮质”和“睡眠见于哺乳类和鸟类”这两种情况联系起来进行考虑。从“心皮质中含有纵横交错的神经纤维”和“神经细胞和神经细胞之间的结合部有兴奋性”这两点来看,可以认为大脑皮质是由若干个兴奋单位或者说兴奋要素而组成。神经之间的连接有三个特征:第一是辐散传入;第二是强度完整;第三是聚合。

兴奋信号就进入了这样一个网壮结构的局部,作为这一部分的处理特征,只要有信号输入,就有与之相应的适度的信号输出。当有与若干突触有关的信号输入的时候,就会有相互关联的信号输出。

因此,若问把他们异常的精神状态与这种电子计算机模型联系起来之后将会有以下几种关系:(1)当突触的连接过多或不顺的时候,就会产生“空想”;(2)不论输入什么信号,相同的回路都会兴奋(强迫观念);(3)尽管是一般不会引起反应的不适当的刺激也会发生反应(幻觉)。

克里克认为,电子计算机出错可以把浅路截断进行检查,但是人脑就不同了,只能在异相睡眠的时候,才能对浅路进行检查。在异相睡眠的时候,大脑正在被正常的输入和输出所隔离,而且正受到来自脑干的非特异性刺激,而且这种刺激很活跃,这就是所谓的无意识的梦。

二:梦中的重大的发现。

在 历史 记载中也有关梦的形象描述,其中,最有名的就是对德国的化学家凯库勒的记载。据说他因为对某一种物质的结构式未搞清楚而非常烦恼。有一晚上,他梦见了一幅蛇咬自己尾巴的图,因此而发现了苯环的结构。

医学史上也有一个事例。这就是德国的生理学家奥托.利维的有名的“梦的发现”。有一次,利维做了这样一个梦:一刺激迷走神经,其末梢就释放一种物质,该物质就能抑制心脏的活动。然后,再将停止了跳动的心脏的血集起来,由于里面含有抑制性物质,所以如果再把这种血液注射到另一动物的心脏里面,该动物的心脏也将会停止跳动吧?如果能将这件事证实一下就好了。

于是,第二天一早,他便兴冲冲地去了大学,为了做这种实验,他将研究者召集起来,正要给大家说明的时候,昨晚的梦却记不起来了。

不管利维怎么想也想不起来。他想,那梦能再做一遍就好了,然后他就把纸和笔放在枕边。结果他幸好又做了一个同样的梦。他醒后马上将梦的内容记录了下来。

一大早起来,他便匆匆忙忙地去了大学,开始了他“梦的实验”,结果,他获得了巨大的成功,他把停止了跳动的狗的血液集出来,接着注射给一只狗的心脏,于是,这只狗的心脏跳动便时而减慢,时而停止。

不久,他向世界公布了他的这一实验结果,于是,这种实验在世界范围展开了。但是,不可思意的是:虽然有的研究者得出了与他相同的实验结论,但在有的人的实验中,接受了血液注射的狗的心脏,却根本没有变化。于是,这些人便说利维是个骗子,他也因此得了神经衰弱。

如果用现代的知识来解释的话,这是一种很正常的现象。通过刺激交感神经就会使心脏兴奋、心跳加快;当刺激迷走神经时,心跳就会减慢;如果再进一步增强刺激,心脏就会停止跳动。

从以上可知人会做梦主要是因为平日的愿望或恐惧等各种感情在睡眠时不受抑制的显现出来。但我们也可以从梦中得到启发,而获得成功如利维的重现等。所以我们要处理好生活中的各种感情不要给自己太大的压力,用正确的方式来处理各种困难。

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老化时间的存在,在自适应计算态的时候,暂设计以下步骤在当前心跳区间逼近出最大可用的心跳。 即时通讯聊天软件开发可以加蔚可云的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 的服务器通讯。