A) 如果我有一个 java 应用程序,它启动并等待指定端口上的套接字连接。有没有办法在用户验证后在 php 中维护 session 连接,即持久连接?</p>
B)我的意思是,我试图了解它是如何使用 mysql 和 php 完成的。 mysql 或 php 如何知道最后打开的连接是什么,这样您就不必在之后执行 mysql_connect ?
C) 在每次页面加载时打开和关闭连接是否有任何好处,或者维护持久连接是否更好?
D)如果后者在 C 中是正确的,您能否描述或给出如何在 php --> Java 连接中实现它的示例
最佳答案
A)不,没有。
B) mysql_pconnect() 的工作原理是由于 Web 服务器和 php 的协作方式。 Web 服务器通常会启动许多处理请求的子进程。每个子进程一次只能处理一个请求,并发是通过向不同进程发送并发请求来实现的。
每个这样的进程都有自己的 PHP 实例,每个新请求都会重复使用该实例。这允许 PHP 模块在请求之间维护某些状态。您无法通过常规 PHP 代码执行此操作,它必须是用 C 编写的扩展。不过,对此没有任何保证。进程可以随时被终止并重新启动。
旁注:当然,并非所有网络服务器都使用这样的进程。使用线程方法是相当常见的。但这在 PHP 上不起作用,因为并非所有扩展都是线程安全的。因此,PHP 始终必须在创建子进程来处理请求的 Web 服务器上运行。这种模式(MPM)在 Apache 上称为 prefork。
C) 正如我所说,你别无选择。不过,在快速网络上,打开新连接的开销非常小。
关于java - 维护 php 和 java 应用程序之间的 session /连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053116/