java中使用websocket推送消息服务器端怎么才能主动推送

客户 0 66

java中使用websocket推送消息服务器端怎么才能主动推送,第1张

java中使用websocket推送消息服务器端怎么才能主动推送
导读:目前要实现消息实时推送,有两种方法,一种是ajax轮询,由客户端不停地请求服务器端,查询有没有新消息,然后再由服务器返回结果;另外一种就是long poll,通过一次请求,询问服务器有没有新消息更新,如果没有新消息时,会保持长连接,就一直不

目前要实现消息实时推送,有两种方法,一种是ajax轮询,由客户端不停地请求服务器端,查询有没有新消息,然后再由服务器返回结果;另外一种就是long poll,通过一次请求,询问服务器有没有新消息更新,如果没有新消息时,会保持长连接,就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。这两种都是单向链接,需要被动的请求服务器,而不是由服务器自动发给客户端。

从上面可以看出其实这两种方式,都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性。

1、打开应用时向服务器发申请

2、如果应用一直打开,或者有后台服务,可以定时向服务器发申请

Google本身就有一个推送demo可以用,Google Cloud Message,你可以参考一下,不过国内用Google推送不太稳定,但是我测试的时候基本上都能推送成功。详细的搭建你可以参考我的微博,有什么问题你再问吧

如果你是 安卓客户端 用webview 打开一个html页面, 那你就去搜 WEB推送。

如果是 安卓原生应用的话,你应该挂一个长连接 都服务端,然后服务端推送信息即可。有很多提供推送功能,即时通讯,的都可以, 个推,xmpp协议是即时通讯的协议,实现这样功能的服务器,也可以满足你这个要求。有很多这样的协议,我也记不住那么多。如果你要自己写的话,可以用下mina,跟netty吧。以前我跟我同事用过mina做安卓的推送。