用于Socket编程的Cron作业

时间:2011-05-04 06:43:33

标签: php cron gps

我正在开发一个网站来跟踪GPS设备。我正在将设备(GPS)配置为主机名和特定端口号,以建立与托管服务器的连接,并以1分钟-5分钟的间隔定期发送坐标。

我编写了一个PHP页面来启动套接字服务器以接受来自套接字客户端(GPS设备)的请求,并在存储到数据库之前解析它们。达到这个工作正常。

我的问题是:

  1. 我需要继续打开监听器页面,如果我从cron作业执行此操作,他们有限制,如cron作业只能运行几分钟。

  2. 如果服务器侦听器页面停止/中止,则端口在中止时不会自动关闭。要使用相同的端口,我们需要重新启动系统,这在托管时是不可能的。

  3. 请帮助正确的方法。

    我的主要问题是如何在页面中止时关闭打开的套接字端口。

2 个答案:

答案 0 :(得分:2)

许多托管商不支持打开套接字。保持套接字活动的唯一方法是运行自己的服务器。由于托管服务器托管了许多网站,因此连续运行的cron作业会从服务器请求过多资源。 (如果每个人都一直运行cronjobs,服务器会在任何时候崩溃......)

我建议,查看VPS或开始托管自己的服务器,然后将其作为系统任务运行:D

为了更清楚你的问题,只是PHP不会让你到达你想去的地方; - )

答案 1 :(得分:0)

对于第一个问题,您是否使用无限循环来侦听套接字连接?否则请这样做。

也许对于第二个问题,你可以使用PHP的register_shutdown_function函数。不太确定。试试这个:

创建一个尝试关闭连接并将其注册为关闭函数的函数。