问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

androidpn tomcat版有什么优点

发布网友 发布时间:2022-04-24 07:41

我来回答

1个回答

热心网友 时间:2022-05-02 19:18

 在Androidpn的底层主要采用的两大框架mina和openfire两大框架,其中mina主要为底层数据传输的Socket框架。下面简单的介绍一下Socket框架 
    Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 同时提供了网络通信的Server 端、Client 端的封装,无论是哪端,Mina 在整个网通通信结构中都处于如下的位置: 

可见Mina 的API 将真正的网络通信与我们的应用程序隔离开来 ,你只需要关心你要发送、接收的数据以及你的业务逻辑即可。同样的,无论是哪端,Mina 的执行流程如下所示: 

(1). IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立。 
(2). IoProcessor:这个接口在另一个线程上负责检查是否有数据在通道上读写,也就是说它也拥有自己的Selector,这是与我们使用JAVA NIO 编码时的一个不同之处,通常在JAVA NIO 编码中,我们都是使用一个Selector,也就是不区分IoService与IoProcessor 两个功能接口。另外,IoProcessor 负责调用注册在IoService 上的过滤器,并在过滤器链之后调用IoHandler。 
(3). IoFilter:这个接口定义一组*,这些*可以包括日志输出、黑名单过滤、数据的编码(write 方向)与解码(read 方向)等功能,其中数据的encode 与decode是最为重要的、也是你在使用Mina 时最主要关注的地方。 
(4). IoHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。 

通过Mina的原理我们研究androidpn的运行流程不能看出,如下: 

1.spring初始化并启动过程,调用NioSocketAcceptor。

2.NioSocketAcceptor开始执行调用IoProcessor.

3.IoProcessor开始调用FilterChain。FilterChain调用相关的IoFilter的。其中ProtocolCodecFilter的过滤器调用了org.androidpn.server.xmpp.codec.XmppCodecFactory进行编码。

4.XmppIoHandler实现自IoHanlder并调用通过openfire 的XMLLightweightParser解析相关的业务逻辑。

5.根据解析的信息调用xmpp并处理相关信息。

AndroidPN(Android Push Notification) 是一个基于 XMPP 协议的 Java 开源推送通知实现,它包含了完整的客户端和服务端。

AndroidPN基于 Openfire 下的一些开源项目构建。

AndroidPN服务器包含两个部分,

      一个是侦听在5222端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。

      另外一部分是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。

最上层包含四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。

        SessionManager负责管理客户端与服务器之间的会话。

        Auth Manager负责客户端用户认证管理。

        Presence Manager负责管理客户端用户的登录状态。

        NotificationManager负责实现服务器向客户端推送消息功能。 

IQHandler消息处理器的类:

     IQHandler:消息处理器抽象类。

     IQAuthHandler:权限协议的消息处理类,消息的类型为:jabber:iq:auth

     IQRegisterHandler:用户注册的消息处理类,消息类型为: jabber:iq:register

     IQRosterHandler:用户消息交互类,消息类型为:jabber:iq:roster

     PresenceUpdateHandler:用户状态展现变化处理类。内部调用,不具有类型。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我腌制的辣椒有一股臭味 枸杞干燥的方法介绍 枸杞怎样干燥 ...这么严了吗?体检左边精索静脉曲张2.4mm算轻微了,还必须要做手术... ...出,哪个不是科技类网站(单选) A、虎嗅 B、猫扑 C、i黑马? 宁波到宁海的车汽车南站最早几点? 一群河马有多少只? 一群是指多少个人以上 有什么办法屏蔽不良网站? 北京二手房网签之后还要多久过户 北京二手房网签后多久能过户? 北京二手房如何过户 android xmpp outgoingfiletransfer发送文件是base64吗 android 基于xmpp开发即时通讯时 发送消息的限制 Android及时通讯应用使用socket.io比XMPP有优势吗 android-Android中使用XMPP实现登录都可以连接上为什么登录不了 android中 的xmpp连接服务器总是出非法状态异常异常是怎么回事 截屏的图片打印机为何无法识别 微信截图发到电脑上为什么不能打印? 手机截屏的文字在打印机打不全怎么办? 茶叶泡茶的问题 打印图片显示截图和草图无法打印是什么原因 泡茶的全过程? 牙龈松动不牢,出血怎么办 牙龈出血牙齿松动怎么办? 牙龈出血,牙齿松动怎么办? 牙龈自动出血,牙开始松动,要掉了,怎么回事? 牙齿松动,牙龈经常出血,怎么办? 牙齿松动,牙龈出血是怎么回事? 牙齿松动,牙龈出血怎么办 牙齿松动出血怎么办 最近牙齿有点松动还出血了怎么办 基于XMPP协议的android im聊天程序怎么判断好友是否在线 android 即时通信。。如何实现? androidpn 可以用 nginx 吗 一台设备上安装多个多包名应用程序怎么用接收到全部推送消息 Android 上开发国内应用都用什么推送? 海外可以用 GCM, 国内呢? 有做安卓后台服务端的哥们吗?问你们个问题? 三控开关如何接? 如何和男生聊天,找话题 故宫(紫禁城)中皇后和太后住在哪里? 如何找话题聊天不冷场?跟女生如何聊天技巧? 西汉太后与太皇太后若同在,那分别住在什么宫殿? 汉朝的时候太后住的是叫什么殿 清朝皇后住什么宫.太后又住什么宫 古代皇上、太后、皇后等妃嫔分别住哪个宫? 古代后宫的妃嫔是如何分配居住的?比如皇后住“宫”,妃子住“殿”,以此类推,有谁知道? 太子住东宫皇后住中宫那太后住什么宫 清朝的时候皇后和太后到底住在哪里? 慈宁宫是皇太后的宫殿,为何孝庄之后,再没有太后住进去呢? 清朝之前皇太后住的宫殿叫什么如题,最好 唐朝皇后,太后住的宫殿名字?能多列举一些大明宫中宫殿的名字吗?