基于netty的企业即时通讯系统的设计与实-离线消息处理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

原文地址:http://www.cookqq.com/blog/8a10a5f35382ba2e0153c7a1125c20e7

客户端与服务器保持长连接,服务器可以很轻松的向客户端推送消息。由于网络不稳定、程序不可能24小时都被程序运行,客户端与服务器没有建立长连接的时候,服务器怎么向客户端推送消息呢??


一种方式:只要是客户端开机,自动运行程序,自动和服务器保持长连接。

    ios手机如果程序退到后台,必须断开长连接,一直保持长连接不可能,如果你使用voip技术在后台保持长连接,这个做法不能被appstore审核通过

    android手机后台运行service,如果用户强制关闭或者手机自动启动,一般程序是不能启动的~~

另一种方式:使用离线推送方式

    ios推送离校消息,苹果有自己的规则,并且做的很好。

    android的离线消息推送需要连接google地址,由于国内访问国外的网址太不稳定了,直接使用google提供的推送方式不理想。


    android手机的离线推送消息是个难解的题,第一种方式程序很难一直在后台运行,总有被杀死的时候,程序自动启动这个功能google已经安全优化了,不是任何程序都能随意启动!!

第二种方式使用google提供的离线推送消息机制,由于国内访问国外的限制,也不能有效的解决问题。


  离线消息和在线消息只能分开,离线消息因为安卓上面会被各种因素影响,只能用大厂的推送通道,他们有足够多的app可以互相叫醒,在线消息得自己做,因为推送通道的响应速度不行。 

blob.png

    手机首次和服务器端建立长连接成功之后,客户端同样也要和极光服务器端建立信任关系。客户端在线状态下,和服务器的消息交互都走自己的网络通信架构,不经过极光服务器。自己服务器重点处理在线用户的消息。


blob.png

  当客户端与服务器失去联系,服务器有消息需要推送给这个客户端的时候,服务器直接把消息推送给极光服务器,再通过极光推送给客户端。这个过程我们可以理解成不要求及时性~~~


转载于:https://my.oschina.net/winHerson/blog/650326

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GeneralUpdate实现应用程序更新

微软中国MSDN 点击上方蓝字关注我们大家好,我是本期的实验室研究员——朱震。今天我将通过实验和完整的操作过程,向大家介绍如何基于开源项目GeneralUpdate打造一个能自动升级的客户端应用。接下来就让我们一起到实验室中一探究竟吧!微软MVP…

看完数学概念背后的故事,让孩子的数学兴趣激增1000倍!

▲ 点击查看英国著名科学家霍金在撰写《时间简史》的时候,出版商郑重其事地建议道:“你的书里多一条数学公式,就会失去一部分读者。”可见对数理化的害怕,也没有国界,大家都一样。看着满满都是概念和数字的课本&#x…

主存和cache每一块相等_笔记:cpu中的cache(一)

前言:绝大部分内容来源于北京大学的慕课《计算机组成原理》,地址:https://www.coursera.org/learn/jisuanji-zucheng存储体系(《深入理解计算机系统》)cache是为了解决cpu和内存速度不对等的问题。一,cache…

设计模式学习笔记(十七)——Command命令模式

设计模式学习笔记(十七)——Command命令模式 Command命令模式介绍: Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问…

MAUI中Maui.Graphics.Controls绘制控件

简介Microsoft.Maui.Graphics是一个完全采用C#的iOS,Android,Windows,macOS,Tizen和Linux的跨平台图形库。对于MAUI项目当中绘制的方案是使用不同平台的控件来而非自绘。当然MAUI当中也使用了Microsoft.Maui.Graphics,MAUI Previe…

BGP聚合as-set advertise-map

advertise-map xxx 用来挂汇总路由的,当route-map xxx 中的路由存在时,才会出现汇总路由。否则没有汇总路由只继承advertise-map xxx 中路由的属性当汇总路由携带了多个明细属性,可用advertise-map xxx 来移除某个明细路由的路由属性实验拓扑…

Android之如何解决popupWindow(pw.setFocusable(true))按返回键和menu键退出

先爆照: 问题: 使用过popupWindow的时候,我们为了让其它地方不可点击,我们一般会pw.setFocusable(true),但是当我们这样设置之后,问题出现了,按返回键或者menu菜单键没有反应,这是原因呢? PopupWindow 跟我们的 Activity 不一样,因为我们在构造 PW 的时候往往不是继…

上班骚扰男同事被抓到......

1 不同年代的辞职理由(素材来源网络,侵删)▼2 月壤不能种菜太让人失望了▼3 原来,我也努力过▼4 忘了上班还有监控(作者来源最右,ID:8943090 )▼5 这是台风被黑的最惨的一次&…

mysql8 修改权限_MySQL8修改重置root密码,远程连接权限设置

MySQL8 修改重置root密码这里要单独强调是MySQL8,因为在MySQL 8.04前,执行:SET PASSWORDPASSWORD([新密码]);可行,但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_pa…

用wordpress制作网站的总结

在没有自己的网站的时候很像拥有一个属于自己的网站,可以说是自己的一个愿望吧。但是当我真正的运行起来了之后觉得没有多么的兴奋,自己也折腾了几天wordpress,从买域名空间,到安装WP,遇到了一些问题,自己到处搜索答案…

Android之使用PopupWindow使用和总结

不废话,先爆照 说明: 那个灰色背景是不能滑动里ListView里面的内容的 第一步:我们需要背景view 下面是我的background.xml文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/t…

Cell发文!施一公科研团队取得重大突破

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;科学网&#xff08;有删减&#xff09;北京时间2020年12月29日凌晨0时&#xff0c;《细胞》&#xff08;Cell&#xff09;发表中科院院士、西湖大学校长施一公课题组的一项新研究。研究首次报道了γ-分泌酶&#xff…

MAUI 跨平台播客应用程序(Conf 2021)

介绍在.NET Conf 2021大会上&#xff0c;微软展示了基于.NET6 跨平台应用程序, 具有ASP.NET Core、Blazor、.NET MAUI、微服务等功能。浏览由 ASP.NET Core 和 Blazor 提供支持的 .NET Podcasts 应用的实时运行版本&#xff1a;https://dotnetpodcasts.azurewebsites.net/项目体…

Android之如何实现通讯录的搜索并且让匹配到的数据变颜色

不废话,先爆照 第一步:实现搜索 已经实现了通讯录功能,但是需要搜索,可以支持中文名字搜索,写入电话号码搜索,还有名字拼音,以及名字第一个字的首字母来搜索,这里介绍名字搜索,然后数据是我们公司TCL(020)所有员工的信息,目前还没有写到后…

dotnet 将自动代码格式化机器人带入团队 GitLab 平台

给团队带入一个 代码格式化机器人 能提升团队的幸福度&#xff0c;让团队的成员安心写代码&#xff0c;不用关注代码格式化问题&#xff0c;将格式代码这个粗活交给机器人去做。同时也能减少在代码审查里撕格式化问题的时间&#xff0c;让更多的时间投入到更有价值的工作上本文…

Android 之自定义view实现水波纹效果

在实际的开发中&#xff0c;很多时候还会遇到相对比较复杂的需求&#xff0c;比如产品妹纸或UI妹纸在哪看了个让人兴奋的效果&#xff0c;兴致高昂的来找你&#xff0c;看了之后目的很明确&#xff0c;当然就是希望你能给她&#xff1b; 在这样的关键时候&#xff0c;身子板就一…

FFLIb Demo CQRS

使用FFLIB 构建了一个demo&#xff0c;该demo模拟了一个常见的游戏后台架构&#xff0c;该demo主要有一下亮点&#xff1a; FFLIB 实现进程间通信非常方便基于CQRS 思想构建LogicServer使用Event Publish/Subscribe&#xff0c; 实现各个模块的解耦合基于Event 实现实体对象的单…

【自定义标签开发】01-标签简介和开发第一个标签

自定义标签简介自定义标签主要用于移除Jsp页面中的java代码。要使用自定义标签移除jsp页面中的java代码&#xff0c;只需要完成以下两个步骤:1.编写一个实现Tag接口的java类&#xff0c;把页面java代码移到这个java类中(标签处理器类)。2.编写标签库描述(tld)文件&#xff0c;在…

三联《少年》创刊,各领域佼佼者畅言新知,帮少年建立思维素养体系!

▲点击查看很多中国小孩的成长是断层的。10岁前被视作可爱稚子&#xff0c;被大人护着走&#xff1b;18岁猛然被定义为成年人&#xff0c;要选择大学、专业&#xff0c;开始面对感情。中间的人生呢&#xff1f;“你是个学生&#xff0c;学习是本职&#xff0c;现在谈什么人生&a…

趁爸妈不在家约男朋友回家吃饭,然而......

1 有没有男主很脆弱的电影&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 成长期-成熟期-完全体-究极体▼3 千万别在家乱放星巴克的袋子&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 发生了很奇怪的事情▼5 只有你想不到&#xff0c;没…