我想使用客户端 - 服务器协议将数据推送到始终保持连接的客户端,全天候。
HTTP是一种很好的通用客户端 - 服务器协议。我不认为语义可能会对任何其他协议有很大的不同,并且存在许多好的HTTP服务器。
关键因素是连接数:应用程序将逐渐扩展到非常大量的客户端,比如100,000。它们不能是服务器,因为它们具有动态IP地址,可能位于防火墙之后。因此,必须建立并保留套接字链接,这将引导我们进行HTTP推送。实际上很少将数据推送到给定的客户端,因此我们也希望最小化连接开销。
服务器应该通过接受连接,将远程IP和端口插入表中并使其空闲来处理此问题。我们不希望运行100,000个线程,只需要很多表项和文件描述符。
有没有办法使用现成的HTTP服务器实现这一点,而无需在套接字层写入?
答案 0 :(得分:2)
LightStreamer(http://www.lightstreamer.com/)是专门为HTTP的PUSH操作而制作的工具。
应该解决这个问题。
答案 1 :(得分:2)
使用推送框架:http://www.pushframework.com。 它旨在实现管理大量长期异步全双工连接的目标。
答案 2 :(得分:1)
您还可以查看Jetty + Continuations。