首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时竞价系统使用什么技术?

实时竞价系统使用什么技术?
EN

Stack Overflow用户
提问于 2011-07-09 19:45:57
回答 5查看 6.3K关注 0票数 3

http://www.bidzinga.com/

http://www.bidbass.com/

他们使用的是彗星技术吗?

您推荐使用什么,以及如何使用建议的技术实现它的简单描述?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-09 21:04:24

Hi这些网站使用的是什么ajax技术?

我快速检查了一下Bidzinga的源代码,看起来他们只是在做简单的polling(frequently!).例如,在这个javascript文件(http://www.bidzinga.com/js/default.js)中,我显示了频繁轮询的部分:

代码语言:javascript
复制
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)时,它需要从disc(有时是缓存)获取每个请求。即使频繁轮询从来都不是一种聪明的方法,您可以肯定您的服务器会在负载下死掉。

他们在使用COMET技术吗?

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

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

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

托管解决方案

但我认为在一开始我会推荐你使用pusher,因为它是一个托管的解决方案,有很好的文档记录,甚至有一个免费的计划。

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

我必须提醒你,免费/便宜的计划没有安全套接字层,所以你永远不应该发送任何私人信息通过网络。价格较高的套餐确实有SSL,但每月的费用为50美元。我认为如果你自己实现它,你可以花更少的钱,但那会耗费你的时间(时间等于金钱)。以下是其他一些托管解决方案,可能符合您的要求:

  • http://www.pubnub.com
  • http://beaconpush.com/

开源产品:

首先,我想指出的是,这些都不是PHP,因为我不认为PHP是为处理这个问题而设计的。即使是Facebook,它完全是一个PHP商店(现在大量使用HipHop )也同意我的观点,并实现了chat using erlang。对于这些有很好文档的开源产品,您将需要一个VPS。对于他们中的一些人来说,如果你能以root身份安装软件,那就太好了。虽然VPS并不是所有这些产品都需要的,但你应该有编译软件的能力。

从XMPP客户端进行连接

票数 7
EN

Stack Overflow用户

发布于 2011-07-09 21:21:18

每更新一次,setInterval就会kill你的服务器/客户端。

为此,您可以使用递归函数

代码语言:javascript
复制
    //call foo onload
    foo();

    function foo(){

    // ajax call

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

    var recursivecall= setTimeout(function(){

    foo(); // recalling

    },1000);

    });
}

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

票数 1
EN

Stack Overflow用户

发布于 2011-07-09 20:09:07

它们每秒轮询服务器以检查/重新呈现时间并获取新数据。这是使用setInterval的经典ajax

代码语言:javascript
复制
setInterval(function(){ get_new_data(); }, 1000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6634522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档