C和PHP之间的共享内存并发访问

时间:2019-02-15 03:33:12

标签: javascript php c linux

我有一个任务,包括编写一个基于Web的界面来监视具有大约80个状态指示器的机器的状态。 机器通过串行接口将其状态信息发送到服务器(Linux主机)。 我目前有一个守护进程(用C编写),可以接收该信息,对其进行处理和格式化,然后将其写入Unix IPC套接字。

Web服务器(nginx)使用PHP模块读取该IPC套接字,然后使用SSE(服务器发送事件)将信息转发到Web浏览器。 浏览器正在运行javascript EventSource,以便实时更新网页。

除了不能同时支持多个客户端之外,所有这些都运行得非常好:-(。 我需要找到一种向每个连接的客户端(浏览器)发送相同信息的方法。

我现在正在寻找使用共享内存的方法来实现这一目标,我相信可以使用经典的Reader / Writer锁定方法来完成。 参考:https://arxiv.org/ftp/arxiv/papers/1309/1309.4507.pdf

在这种情况下,处理串行数据流的服务器守护程序是唯一的编写器。所有客户只会是读者。

我想知道那里是否还有其他人遇到过类似的问题,如果有,如何解决。我不想浪费时间追逐彩虹:-)。

我还将遇到使用PHP访问由C程序编写的数据的问题,但这是必须进行的另一场战斗。 (也许我应该考虑运行一个C程序代替PHP)

任何有用的反馈将不胜感激。

0 个答案:

没有答案