Java 带有quercus的php comet

Java 带有quercus的php comet,java,php,comet,server-push,quercus,Java,Php,Comet,Server Push,Quercus,如果我用php编写comet push,但通过quercus在java服务器上使用此代码,这会解决apache遇到的每个请求一个进程的问题,并且可以很好地扩展到使用我的聊天室的许多用户吗?是的,quercus解决了apache的每个请求一个进程的瓶颈。但是,您需要了解JVM可能存在的瓶颈。不过,在我看来,您应该使用C/C++编写服务或应用程序,使用libevent、Erlang、Google Go之类的工具,或者仅仅为了可移植性而将其作为Java servlet编写。是的,,Quercus解决了

如果我用php编写comet push,但通过quercus在java服务器上使用此代码,这会解决apache遇到的每个请求一个进程的问题,并且可以很好地扩展到使用我的聊天室的许多用户吗?

是的,quercus解决了apache的每个请求一个进程的瓶颈。但是,您需要了解JVM可能存在的瓶颈。不过,在我看来,您应该使用C/C++编写服务或应用程序,使用libevent、Erlang、Google Go之类的工具,或者仅仅为了可移植性而将其作为Java servlet编写。

是的,,Quercus解决了每个请求一个进程的Apache瓶颈。但是,您需要了解JVM可能存在的瓶颈。不过,在我看来,您应该使用C/C++编写服务或应用程序,使用libevent、Erlang、GoogleGo之类的工具,或者仅仅为了可移植性而将其作为Java servlet来编写。

好吧,Quercus在(J)VM上运行,这样它就可以与其他可以启动线程的代码一起运行。但是为什么你需要线程来聊天呢?您只需将普通PHP请求的超时设置为0(无超时),然后等待有东西发送回用户

其他东西将响应其他人的请求(即A说“你好”,打断B等待某事发生)。这不需要多线程

您还可以继续使用Apache/PHP并执行上述操作,而是通过XML RPC之类的东西连接到Java(或其他)服务,这可能会永远等待。该服务器可以运行多个线程或执行任何需要的操作。

好的,Quercus在(J)VM上运行,因此它可以与其他可以启动线程的代码一起运行。但是为什么你需要线程来聊天呢?您只需将普通PHP请求的超时设置为0(无超时),然后等待有东西发送回用户

其他东西将响应其他人的请求(即A说“你好”,打断B等待某事发生)。这不需要多线程


您还可以继续使用Apache/PHP并执行上述操作,而是通过XML RPC之类的东西连接到Java(或其他)服务,这可能会永远等待。该服务器可以运行多个线程或执行任何需要的操作。

出于好奇,您是否探讨过使用libpurple和XMPP解决方案的想法?我不确定它是否解决了Apache瓶颈,但我一直在考虑针对我自己的情况提供这样的解决方案,我想知道您已经探索到了什么,几乎可以让一些东西成为现实。我读了一些关于libpurple的文章。似乎用户将不得不使用他们的hotmail或gmail帐户进行聊天。我只想在我的论坛内与他们的论坛身份聊天,所以我认为这不适合我。您必须使用c/c++来实现它吗?出于好奇,您是否探讨过使用libpurple和XMPP解决方案的想法?我不确定它是否解决了Apache瓶颈,但我一直在考虑针对我自己的情况提供这样的解决方案,我想知道您已经探索到了什么,几乎可以让一些东西成为现实。我读了一些关于libpurple的文章。似乎用户将不得不使用他们的hotmail或gmail帐户进行聊天。我只想在我的论坛内与他们的论坛身份聊天,所以我认为这不适合我。你必须使用c/c++来实现它?我读到过,如果你用apache实现comet,那么如果你有5000个用户,apache将创建5000个活动进程,消耗大量内存和cpu。想象一下,如果有10万用户同时聊天,web服务器会发生什么情况。然后有人说,使用java(语言和服务器),即使有10万用户在聊天,没有发送任何内容的用户的进程也将处于“睡眠状态”,只有活动进程消耗cpu和ram。如果我错了,请纠正我,如果你能为我详细阐述一下这个概念,那会很有帮助。所以我想知道,如果我在java服务器上使用我的php comet代码和quercus(我已经成功实现了),这能解决apache进程的问题并使非活动进程处于休眠状态吗?@noname:comet进程是开放连接和执行代码,不管语言。现在您可以说Java字节码的开销更低。我不能说这是不是真的,或者到了什么程度。但是这些开放的连接将消耗资源,从根本上说,在睡眠过程方面没有区别。PHP可以像Java一样执行阻塞操作和睡眠。还有,你真的会有100000个用户吗?为什么不针对您实际遇到的问题而不是您希望遇到的问题进行构建呢?这是我读到的:“从目前为止我在这里读到的内容来看,php不是最好的选择,因为它是作为每个请求一个进程而不是线程外运行的。”在我看来,从其他信息来看,Java以某种方式解决了这个问题。是因为java为每个请求创建了一个线程吗?这在技术上如何帮助Web服务器?有没有什么文章可以让我完全理解彗星问题。我刚刚听说java服务器比apache好,但我不太明白为什么。所以我用glassfish实现了php代码。你认为这会解决apache出现的任何问题吗?@noname:进程与线程的关系是一个有效的观点。但即使每个连接有一个线程也无法扩展。查看Grizzly(一个基于JavaNIO的HTTP监听器)以了解更多关于这方面的信息。你也可以在页面上使用PHP,在聊天后端使用其他东西,这是我在Quercus上的建议。我了解到,如果你用apache实现comet,那么如果你有5000个用户,apache将创建5000个活动进程,消耗大量内存和cpu。想象一下,如果有10万用户同时聊天,web服务器会发生什么情况。然后有人说,使用java(语言和服务器),即使有10万用户在聊天,进程也会发送给没有发送任何信息的用户