与没有 GCM 的推送服务器的持久 http 连接
Posted
技术标签:
【中文标题】与没有 GCM 的推送服务器的持久 http 连接【英文标题】:persistant http connection to a push server without GCM 【发布时间】:2014-10-31 12:17:11 【问题描述】:问题很简单:
-
连接到 HTTP 服务器并保持连接打开几分钟。
每次接收数据时触发回调函数,而不是在连接完成接收所有数据时触发。
【问题讨论】:
我不确定我是否正确理解了您想要实现的目标,但如果您正在考虑推送到 android,您可能需要考虑 GCM。 哦,如果我想推送到 android,我会使用 GCM,不,我想制作一个应用来绑定到预先存在的推送服务。 【参考方案1】:好的,最好的方法是使用 TCP 连接来处理它(并编写一些代码来解析 http)。
我在一个线程中使用了一个 Socket(来自 java.net.Socket),它循环、休眠然后检查缓冲区中是否有任何新数据。
重量很轻,效果很好。因为我只想在服务器在持久连接上呈现数据时检索数据,所以不需要任何 http 开销。
确实需要伪造一个 http get 请求来启动它:
PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.println("GET / HTTP/1.1");
pw.println("Host: www.example.com");
pw.println("");
pw.flush();
【讨论】:
以上是关于与没有 GCM 的推送服务器的持久 http 连接的主要内容,如果未能解决你的问题,请参考以下文章