我已经用javascript对服务器推送进行了一些研究,并且已经找到了普遍的共识,即我正在寻找的是"Comet"设计模式.在jQuery之上构建这个模式有什么好的实现吗?如果没有,这种模式是否有任何好的实现?无论这些问题的答案如何,从实施的角度来看,是否存在关于此模式的任何文档?
我正在我的应用程序中实现Google Cloud Messaging.服务器代码还没有准备好,在我的环境中由于一些防火墙限制,我无法为推送通知部署测试服务器.我正在寻找的是一个在线服务器,它会向我的设备发送一些测试通知来测试我的客户端实现.
android server-push push-notification android-notifications google-cloud-messaging
我有一个关于如何负载平衡Web套接字的问题.
我有一个支持Web套接字的服务器.浏览器连接到我的站点,每个浏览器打开一个Web套接字www.mydomain.com
.这样,我的社交网络应用程序可以将消息推送到客户端.
传统上,只使用HTTP请求,我会通过在两个Web服务器前添加第二个服务器和负载均衡器来扩展.
使用Web套接字,连接必须直接与Web服务器,而不是负载平衡器,因为如果一台机器的物理限制为64k开放端口,并且客户端连接到负载均衡器,那么我无法支持超过64k并发用户.
那我该怎么办 -
让页面加载时客户端直接连接到Web服务器(而不是负载均衡器)?我是否只是从节点加载JavaScript,并且每次最初请求页面时,负载均衡器(或其他)会随机修改脚本的URL?
处理涟漪开始?当Web服务器关闭时,浏览器会注意到连接已关闭.我可以编写JavaScript代码来尝试重新打开连接,但该节点将会消失一段时间.所以我想我必须回到负载均衡器来查询下一个要使用的节点的地址?
我确实想知道负载均衡器在初始请求上发送重定向,以便浏览器最初请求www.mydomain.com
并重定向到www34.mydomain.com
.这很有效,直到节点出现故障 - 像Facebook这样的网站不这样做.他们是如何做到的呢?
我正在开发一个简单的通知服务,用于向浏览网站的用户传递消息.通知不必实时发送,但如果它们的发生频率高于每5分钟发送一次,则可能是更好的用户体验.发送到客户端和从客户端发送的数据不是很大,而且是检索数据的直接数据库查询.
在阅读有关该主题的其他对话时,似乎AJAX推送可能导致更高的服务器负载.由于我可以容忍更长的服务器延迟,因此有必要让服务器推送通知或简单地轮询.
实现推送方案并不困难,所以我想我会看到这里的意见.
谢谢你的帮助.
编辑:我已经研究了一个简单的AJAX推送,并根据Mike Purvis的这篇文章实现了一个简单的演示.对于初始版本,客户端负载相当低,大约为5k,并且预计会在相当长的一段时间内保持这种状态.
谢谢大家的回复.我已决定使用轮询解决方案,但将其全部包装在实用程序库中,这样如果他们想稍后更改它就会更容易.
看起来HTML 5中的Websockets将成为服务器推送的新标准.
这是否意味着服务器推送被称为Comet的黑客将被淘汰?
当所有主流浏览器中的Websockets即将推出(1 - 2年)时,我是否有理由学习如何实现彗星?
然后我可以使用Beaconpush或Pusher直到那时为止?
HTTP/2规范指示如果客户端取消它,则不会推送在PUSH_PROMISE帧中标识的任何资源.
当浏览器检测到缓存中已存在的资源时,它应取消对此资源的推送.但是,我没有看到浏览器如何检测它.框架是否提供其他信息,如etag或上次修改,以允许浏览器检测是否必须驱逐任何缓存条目或是否可以取消推送?
如果可能,可以节省一些带宽.但是,似乎服务器推送会破坏任何客户端缓存优化.
如何在Python中使用Google App Engine实现Comet/Server推送?
我已经阅读了很多关于HTTP 2的内容(它还在开发中),所以我也听说过服务器推送功能,但我的头脑,这还不清楚.
此服务器推送功能是否意味着服务器能够在没有后者发出请求的情况下向客户端发送响应?就像一个vanilla TCP连接?或者我错过了这一点?
我正在寻找一个教程,博客条目,或者在会话到期时自动推送用户(即没有回发)的网站背后的技术的一些帮助.任何帮助表示赞赏
server-push ×10
comet ×3
http2 ×2
javascript ×2
websocket ×2
ajax ×1
android ×1
asp.net ×1
channel-api ×1
html ×1
jquery ×1
python ×1
redirect ×1
reverse-ajax ×1
socket.io ×1
web-services ×1