我正在玩一个嵌入式Linux设备,并寻找一种方法,让我的应用程序代码与网络接口通信。我需要在设备web界面上显示来自应用程序的一些状态信息,并希望有一种方式通知应用程序任何用户操作,如上传的文件等。PHP似乎是制作界面的好方法,但通信部分更难。我已经找到了以下选项,但不确定哪个是最简单和最方便使用的。
套接字.必须首先为PHP启用套接字来尝试此操作。不知道启用是否会占用更多的空间。
数据库。似乎是一个过火的解决方案。
共享文件。似乎是一项很大的工作。
命名管道。尝试了一些成功,但不确定是否会出现问题,例如,在同时加载页面。也许套接字更容易?
最好的办法是什么?有什么东西我完全错过了吗?在众多基于Linux的商用网络交换机中是如何做到这一点的?
发布于 2008-12-01 02:29:22
我最近使用套接字做了一些非常类似的事情,而且效果很好。我有一个Java应用程序,它与设备通信,设备监听服务器套接字,PHP应用程序就是客户机。
因此,在您的示例中,PHP客户端将初始化连接,然后服务器可以根据设备的状态进行应答。
关于如何与大多数语言进行客户机/服务器套接字通信,有很多教程,所以不需要太长时间就能弄清楚。
发布于 2008-12-01 01:25:45
这是什么装置?
如果您使用的是共享文件,设备将如何更新?
命名管道将如何遇到套接字将避免的并发问题?
就从设备到PHP的通信而言,文件似乎是完美的。PHP可以使用一些基本的东西,比如file_get_contents(),设备可以直接写到文件中。如果您担心及时更新文件的时间,请快速检查文件的长度。
在PHP告诉设备该做什么方面,我也倾向于使用文件。让设备监视一个目录,并让脚本在那里创建一个类似于file_put_contents($path )的文件。uniqid(),$command);这样,如果两个脚本在正确的时间运行,您只需使用两个文件即可。
发布于 2008-12-01 01:37:44
用于web接口路由的嵌入式linux盒不使用PHP。他们使用CGI并让shell脚本交付网页。
对于从应用程序获取信息到web接口,共享文件选项对我来说似乎是最合理的。应用程序只需将信息写入PHP读取的文件中即可。
相反,一开始看上去不太好。PHP支持文件的锁定,但它很可能在系统级别上不起作用。也许一种解决方案是,实际上,拥有应用程序信息的每个PHP脚本都会创建自己的文件(具有唯一的id文件名,例如,基于时间戳+随机值)。应用程序可以查看这些文件弹出的指定目录。在处理完它们之后,它可以只删除它们。为此,应用程序只需要对目录进行写权限(因此文件所有权不是问题)。
https://stackoverflow.com/questions/329728
复制相似问题