即时通讯在我的php脚本中使用连接到服务器,用fsockopen()打开,我希望它在不同的页面之间共享,所以我序列化它并将其保存在会话变量中,但似乎这是一个坏主意因为当我这样做时没有任何反应...... 甚至没有错误。 问题是这个连接需要握手,所以每次都不能重新连接
另一个问题,fsockopen的超时是什么,或者连接是否保持活跃状态。调用它的原始php脚本是关闭的吗?
编辑:// 我有一个运行很长时间的脚本,所以它可以保持打开,但我最初的问题,我可以通过$ _Session共享句柄,如果是,我需要序列化吗? 因为如果我回显句柄它不是一个整数
答案 0 :(得分:3)
您无法将其保存在会话数据中,当打开PHP脚本返回时,进程“死亡”并且您的套接字随之而来。您可以保存句柄中的整数值,但在下载并运行下一页时它将不再有效。
答案 1 :(得分:2)
fsockopen正在打开网络套接字。
当打开该套接字的PHP脚本结束时,它打开的套接字丢失:您无法从其他脚本重用它们。
如果你想要几个不同的页面来使用那个套接字,除了为每个脚本重新打开它之外别无他法,即使需要时间。
另一个(更复杂的)解决方案可能是:
它有点复杂,正如我所说......但它应该可以很好地工作: - )
请注意,使用守护程序以及所有可能需要您访问服务器命令行的内容:您将无法执行(或者不那么好)如果您只从Apache运行PHP,那就完全了。