1

我已经构建了一个通过 FTP 与网络摄像头交互的应用程序,但是在完成它后我遇到了速度问题。应用结构如下:

网络摄像头 -> Proftp/Mysql -> PHP

网络摄像头 ftp 的图像到通过 MySQL / PHP 管理的 Proftp 服务器。PHP 充当用户的客户端,它反过来从 FTP 服务器拉取最新的图像。

这有效,但真的很慢。问题出在 Proftp -> PHP 方面。使用标准的 PHP ftp 库,连接到 ftp 服务器大约需要 4 秒 -> 列出目录 -> 输出文件内容。

速度问题是由于过程的身份验证部分造成的。从我所见,没有办法缓存/存储/序列化 FTP 连接,这意味着对服务器的每个请求都必须启动一个新请求。

这些是我到目前为止的想法..

1) 让 PHP 脚本在 while 循环中运行,并打开永久 FTP 连接,但我知道 PHP 并非旨在以这种方式运行。

2) 创建一个运行 node.js / java 等的守护进程,它能够保持永久的 ftp 连接打开,并让 PHP 与之交互。我对这种方法担心的是编写更多代码所涉及的额外维护,这些代码复制了已经用 PHP 编写的身份验证代码。

3)???

任何帮助/建议将不胜感激!

4

2 回答 2

0

将它安排在 cron 作业上以使 FTP 脚本几乎永久运行或以给定的短时间间隔运行不是明智的吗?

于 2012-10-08T14:32:52.397 回答
0

为什么你要加倍努力从 ftp 读取图像?

如果它们在同一台服务器上,只需通过 php 直接从存储目录中读取它们。

如果它们不在同一个服务器上,利用某种机制通知 php 最新的图像(例如通过文本文件、GET 变量等)并直接输出 http/ftp 图像。

于 2012-10-08T14:42:31.807 回答