Php 实时投标系统使用什么技术?

Php 实时投标系统使用什么技术?,php,ajax,comet,Php,Ajax,Comet,他们在使用彗星技术吗 您建议使用什么,以及如何使用建议的技术实现它的简单描述?他们每秒轮询服务器以检查/重新渲染时间并获取新数据。 这是带有setInterval的经典ajax setInterval(function(){ get_new_data(); }, 1000); 嗨,这些是什么ajax技术 网站使用 我快速查看了Bidzinga的源代码,看起来他们只是在做简单的轮询(频繁!)。例如,在这个javascript文件()中,我展示了频繁轮询的部分: setInterval(funct

他们在使用彗星技术吗


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

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

setInterval(function(){ get_new_data(); }, 1000);
嗨,这些是什么ajax技术 网站使用

我快速查看了Bidzinga的源代码,看起来他们只是在做简单的轮询(频繁!)。例如,在这个javascript文件()中,我展示了频繁轮询的部分:

setInterval(function(){
                var gettime = '/gettime.php?' + new Date().getTime();
                $.ajax({
                    url: gettime,
                    success: function(data){
                        bidOfficialTime.html(data);
                    }
                });
            }, 1000);
这是一个非常糟糕的方法,如果你问我,会杀死你的服务器负载。如果您看到的这个使用PHP(
/gettime.PHP
)的服务器没有(您至少需要安装/编译它以获得良好的性能),那么您可以打赌服务器无法处理,因为每次PHP都需要编译字节码。当不使用APC或任何内存数据库(Redis、Memcached)时,它还需要从光盘(有时缓存)获取每个请求。即使频繁轮询从来都不是一种明智的方法,而且您可以确定您的服务器会在负载下死机


他们在使用彗星技术吗

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

您建议使用什么,以及 大概是一个简单的描述 使用建议的 技术

我想这取决于你的规模

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

我们的免费沙箱计划包括多达 20个连接和100000条消息 每天

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

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

  • 这将是我的第一选择。对于socket.io I,至少应该让您开始使用它
  • 作为一个爱唠叨的客户。另外,您还可以从XMPP客户机使用此连接

setInterval每秒钟更新一次,就杀死您的服务器/客户端

为此,可以使用递归函数

    //call foo onload
    foo();

    function foo(){

    // ajax call

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

    var recursivecall= setTimeout(function(){

    foo(); // recalling

    },1000);

    });
}

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

您可以使用node.jssocket.io进行此操作。
这个链接可以让你有一个好的开始。如果您不熟悉node和socket.io,请告诉我。

我是Pennyaductionsoftware.net的开发人员,我们有一款产品,使用WebSocket和ajax回退功能对12000名并发用户进行了测试,适用于较旧的浏览器……它使用memcache、redis和浏览器缓存大量利用缓存

确定他们每秒都会轮询吗?会杀死服务器/客户端吗?我知道系统每隔3-10秒拉一次,当服务器没有任何请求时,客户端会为这些“超时”生成假数据。您可能想提到WebSocket,因为您提出的许多解决方案(pusher,socket.io)都支持它。这是真的,但如果它们只支持WebSocket,您将遇到一个大问题,因为并非所有浏览器都支持WebSocket。他们提供了更多的传输来支持跨浏览器。嗨,Alfred,当然PHP不是设计用来处理这种情况的,但是让PHP作为这些框架的客户端会很棒。@Geocine,最快的入门方法是使用pusher。他们有很好的RESTAPI。还有一个为PHP=>开发的库。也许当我有时间的时候,我想在socket.io;)周围包装一个简单的RESTAPI。但我想这还需要一些时间。我猜我一个月内就能吃到一些很酷的东西。如果我每周快速工作几天…@Alfred,你的建议使用Pusher很好,但我更喜欢自托管解决方案,而不是开源解决方案。我没有钱推出这样的产品。所以socket.io可以用于PHP,而PHP是客户端或js,这就是我到目前为止从你的链接文章没有深入挖掘的内容。你推荐socket.io、node.js、redis和PHP组合吗?不需要学太多。谢谢