用于实时出价系统的技术是什么?

时间:2011-07-09 11:45:57

标签: php ajax comet

http://www.bidzinga.com/

http://www.bidbass.com/

他们使用的是COMET技术吗?

您建议使用什么,可能是如何使用建议的技术实现它的简单描述?

5 个答案:

答案 0 :(得分:6)

  

嗨,ajax技术是做什么的   网站使用?

我快速检查了Bidzinga的源代码,看起来他们只进行简单的轮询(频繁!)。例如,在这个javascript文件(http://www.bidzinga.com/js/default.js)中,我展示了经常轮询的部分:

setInterval(function(){
                var gettime = '/gettime.php?' + new Date().getTime();
                $.ajax({
                    url: gettime,
                    success: function(data){
                        bidOfficialTime.html(data);
                    }
                });
            }, 1000);

如果您问我并且会在负载下杀死您的服务器,这是一个非常糟糕的方法。如果你看到这个使用PHP(/gettime.php)的服务器没有APC你需要至少安装/编译这个以获得良好的性能)那么你就是你可以打赌服务器无法应付,因为每次PHP都需要编译字节码。此外,它还需要在不使用APC或任何内存数据库(Redis,Memcached)时从光盘(有时是缓存)获取每个请求。即使以频繁的间隔进行轮询也绝不是一种聪明的方法,您可以确定您的服务器将在负载下死亡。


  

他们是否使用COMET技术?

Bidzinga不使用COMET,因为它使用普通轮询。

  

您建议使用什么,以及   可能是一个如何简单的描述   使用建议来实现它   技术

我想这取决于你的规模(大小)。

托管解决方案

但我认为在开始时我会建议您使用pusher,因为它是一个托管解决方案,记录非常好,甚至还有一个免费的计划。

  

我们的免费沙盒计划包括最多   20个连接和100,000条消息   每天

我必须提醒您,免费/廉价计划没有SSL,所以您不应该通过网络发送任何私人信息。更大的价格计划确实有SSL,但每月费用为50美元。如果你自己实现这个,我认为你可以更便宜,但是那会花费你的时间(时间等于金钱)。以下是一些其他托管解决方案,可能适合您的账单:

开源产品:

首先,我想提一下,这些都不是PHP,因为我不认为PHP是为了解决这个问题而设计的。即使Facebook完全是PHP商店(现在经常使用HipHop)也同意我并实施chat using erlang。对于这些非常好的开源产品,您需要使用VPS。对于其中一些,如果您可以以root用户身份安装软件,这真的很好。虽然并非所有这些产品都需要VPS,但您应该能够编译软件。

答案 1 :(得分:1)

setInterval 会在每次更新时终止您的服务器/客户端。

为此你可以使用递归函数

    //call foo onload
    foo();

    function foo(){

    // ajax call

    $.get('server.php', function(data) {

    var recursivecall= setTimeout(function(){

    foo(); // recalling

    },1000);

    });
}

如果需要,您可以使用clearTimeout(recursivecall);在任何时间点中止recursivecall。

答案 2 :(得分:0)

他们每秒轮询服务器以检查/重新渲染时间并获取新数据。 它是经典的ajax with setInterval

setInterval(function(){ get_new_data(); }, 1000);

答案 3 :(得分:0)

您可以使用 node.js socket.io http://yoramkornatzky.com/2013/07/20/real-time-auctions-with-node-js/comment-page-1/#comment-55此链接可以带您开个好头。如果您是node和socket.io的新手,请告诉我。

答案 4 :(得分:0)

我是pennyauctionsoftware.net的开发人员,我们有一个产品,使用websockets和旧版浏览器的ajax后备测试12000个并发用户...它使用memcache,redis和浏览器缓存大量利用缓存