维护php和java app之间的会话/连接

时间:2010-10-29 15:06:07

标签: java php mysql sockets persistence

A)如果我有一个java应用程序启动并等待指定端口上的套接字连接。有没有办法在用户验证后才能在php中维护会话连接,即持久连接?<​​/ p>

B)我的意思是,我试图了解它是如何用mysql和php完成的。 mysql或php如何知道最后打开的连接是什么,所以你不必在之后做mysql_connect?

C)在每次页面加载时打开和关闭连接有什么好处,还是维持持久连接更好?

D)如果后者在C中是真的,你能描述或给出一个如何在php中实现它的例子 - &gt; Java连接

1 个答案:

答案 0 :(得分:1)

A)不,没有。

B)mysql_pconnect()的工作原理是因为web服务器和php的合作方式。 Web服务器通常会启动许多处理请求的子进程。每个子进程一次只能处理一个请求,并且通过将并发请求发送到不同的进程来实现并发。

每个这样的进程都有自己的PHP实例,可以为每个新请求重用。这允许 PHP模块在请求之间维持某种状态。你不能用普通的PHP代码做到这一点,它必须是用C语言编写的扩展。但是,这并不能保证。一个过程可以随时杀死并重新启动。

旁注:当然,并非所有的Web服务器都使用这样的流程。使用线程方法相当常见。但是,这不适用于PHP,因为并非所有扩展都是线程安全的。因此,PHP总是必须在创建子进程来处理请求的Web服务器上运行。此模式(MPM)在Apache上称为prefork。

C)正如我所说,你没有选择。但是在快速网络上,打开新连接的开销非常小。