关于向安卓客户端推送消息

向手机推送消息是一个比较常用的功能,向IOS推送消息的时候,消息都是要先推送到苹果的通知服务(APNS)上,再由苹果推送到客户端

在安卓中没有类似APNS这样的服务,如果我们自己开发了手机APP,推送的功能就需要我们自己来实现,一般情况下,客户端会建立一个长连接连到服务器端,然后服务器端有消息的话会立即通知到客户端,为了节省服务器资源和同时支持许多客户端连接,服务器端会将连接进行共享,不会给每个连接到服务器端的客户端都建立一个连接.

使用netty来自己实现一个异步的通信框架或者使用servlet容器提供的异步的方案都是可以行的,在我们的项目中使用了jetty-continuations(这是jetty的一个子模块,不仅仅可以在jetty中使用,jetty7之后的版本可以在任何支持servlet3.0的servlet容器中运行),它和异步的servlet类似,但是简化了异步servlet的编程模型,使我们可以更快速地把这个东西使用起来

continuations有几个要点:

服务器端和客户端建立长连接

将请求信息和continuation进行绑定(例如:张三的客户端请求消息,从请求中获取的continuation和张三绑定,然后把这些绑定信息存储起来,服务器再向张三推送消息的时候能够找到这个continuation,然后重用)

没有消息要发送的时候,执行continuation的suspend()方法,将请求挂起

当需要发送新的消息的时候,执行continuation的resume()方法重新激活请求

具体的例子可以参考我的github:https://github.com/jiaoyiping/websample.git

你可能感兴趣的:(关于向安卓客户端推送消息)