我已经构建了一个通过FTP与网络摄像头交互的应用程序,但是在完成它时我遇到了速度问题。申请结构如下:
网络摄像头 - > Proftp / Mysql - > PHP
网络摄像头ftp的图像到Proftp服务器,通过MySQL / PHP管理。 PHP充当用户的客户端,然后从FTP服务器中提取最新的图像。
这很有效,但确实很慢。问题在于Proftp - > PHP端。使用标准的PHP ftp库,连接到ftp服务器大约需要4秒钟 - >做目录列表 - >输出文件内容。
速度问题是由流程的身份验证部分引起的。从我所看到的,没有办法缓存/存储/序列化FTP连接,这意味着每个服务器的请求都必须启动一个新的请求。
这些是我到目前为止的想法..
1)在打开永久FTP连接的while循环中运行PHP脚本,但我知道PHP不是以这种方式运行的。
2)创建一个运行node.js / java等的守护进程,它能够保持永久的ftp连接打开,并让PHP与之交互。我对这种方法感到担心的是编写更多代码所需的额外维护,这些代码复制了已经用PHP编写的认证代码。
3)???
非常感谢任何帮助/建议!
答案 0 :(得分:0)
将它安排在cron作业上以使FTP脚本几乎永久运行或以给定的短间隔运行是不明智的?
答案 1 :(得分:0)
为什么你加倍努力从ftp读取图像?
如果它们在同一台服务器上,只需直接从存储目录通过php读取它们。
如果它们不在同一台服务器上,请利用某种机制通知php最新图像(例如通过文本文件,GET变量等),并直接输出http / ftp图像。