Comet 推送技术/彗星能被伪造吗?

Comet 推送技术/彗星能被伪造吗?,comet,reverse-ajax,Comet,Reverse Ajax,客户端有一个约会网站,希望在其他用户访问其页面时向用户显示一个弹出窗口(一个漂亮的javascript覆盖或一个新的浏览器窗口弹出窗口。我们很灵活) 我熟悉推送技术和Comet,但实现这一点非常具有挑战性,可能会给每天有超过100000个独立访问者的服务器带来严重压力 我想知道是否有一种伪造的方法,也许是不精确到第二个。我真的想不出任何办法 这是一个经典的灯光环境 有人吗 编辑:这是怎么回事:在页面上放置一个iframe,每隔几秒钟刷新一次,每次加载页面时,它都会检查数据库中是否有访问者登录了此

客户端有一个约会网站,希望在其他用户访问其页面时向用户显示一个弹出窗口(一个漂亮的javascript覆盖或一个新的浏览器窗口弹出窗口。我们很灵活)

我熟悉推送技术和Comet,但实现这一点非常具有挑战性,可能会给每天有超过100000个独立访问者的服务器带来严重压力

我想知道是否有一种伪造的方法,也许是不精确到第二个。我真的想不出任何办法

这是一个经典的灯光环境

有人吗


编辑:这是怎么回事:在页面上放置一个iframe,每隔几秒钟刷新一次,每次加载页面时,它都会检查数据库中是否有访问者登录了此配置文件页面。如果是,则显示一条消息。消息将是可见的,但iframe的背景将与站点的背景混合在一起,并且是不可见的。如果消息淡入淡出,它看起来就像一个JS框“弹出”。

收集用户网站每天访问量的统计数据,然后再细分,这样用户就有百分之一百的几率被告知其网站上有用户(即使实际上没有),在时间范围内,他处于可以接收弹出窗口的位置。我认为这是你在没有收到任何通知的情况下能得到的最接近的结果

如果需要推送,可以这样做以最小化服务器使用率: 当用户访问某个网站时,请检查并查看将收到通知的人是否在线并且能够收到通知,如果是,请执行所有推送操作,否则请忘记它

要想“伪造”彗星,唯一的办法就是通过某种形式的轮询,这总是有可能的。iframe、xhr或jsonp请求都可以执行上述轮询

您最好购买一个预构建的comet服务器(当然,我会推荐我帮助构建的那个)。如果您担心负载,您可以查看我们的随需应变版本,我们将在那里为您托管它

无论如何,WebSync(或任何其他您可能会检查的预打包产品)将扩展到每天十万个用户,而不会有太多问题,并且可能比轮询更有效,因为它只会在新用户到达时(而不是每隔几秒钟)命中您的数据库;这就是说,如果您保持“检查新用户”查询足够简单,并且几秒钟的延迟是可以的,那么轮询想法将是“更简单”的解决方案。

如果您想进行真正的推送,请检查。这在浏览器中还没有得到广泛的支持,但是已经有很多JavaScript和Flash库提供了它

或者更便宜的方法是在数据库中记录每个页面的视图。 然后,当任何用户发出web请求时,在DB中检查自上次web请求以来是否有人访问过他们的页面。 如果是,请弹出您的对话框

如果用户只是将浏览器放在那里,那么第二种方式不会弹出任何内容,但是如果他们积极地与站点进行交互,它将非常容易地实现您的目标

我将从第二个更简单的解决方案开始,它非常容易实现。如果您的客户希望它更具交互性,您可以为各种选项提供解决方案和权衡/成本