Php 有没有一种方法可以同时访问Web服务器脚本?

Php 有没有一种方法可以同时访问Web服务器脚本?,php,json,database,Php,Json,Database,我在raspberry pi上用php设置了一个apache2服务器。我的脚本中的php代码接收JSON并将其保存在内存中,然后回显它接收到的内容。在我的客户机中,当按下按钮时,它会发送前面提到的JSON,服务器返回结果后,JSON会更改按钮的颜色。我要做的是让两个客户端使用相同的按钮,我从第一个客户端发送POST请求并刷新第二个客户端,然后第二个客户端反映第一个客户端发布的更改 但这不起作用,我可能使用了错误的工具。我可以开始使用数据库,但最终我想实现一些需要大量写入和读取,并且不需要存储很长

我在raspberry pi上用php设置了一个apache2服务器。我的脚本中的php代码接收JSON并将其保存在内存中,然后回显它接收到的内容。在我的客户机中,当按下按钮时,它会发送前面提到的JSON,服务器返回结果后,JSON会更改按钮的颜色。我要做的是让两个客户端使用相同的按钮,我从第一个客户端发送POST请求并刷新第二个客户端,然后第二个客户端反映第一个客户端发布的更改

但这不起作用,我可能使用了错误的工具。我可以开始使用数据库,但最终我想实现一些需要大量写入和读取,并且不需要存储很长时间的东西。是否有一种不同的服务器端脚本语言更适合我的工作,或者数据库是我唯一的选择

编辑:

我之所以使用http,是因为它是一个不支持ipv6套接字或转换的游戏客户端,所以理想情况下我希望使用底层http传输。我在我的服务器上运行了一些代码,它可以像我希望的那样工作,但我不明白的是如何发布任何客户端都可以检索的数据

<?php
$stream = fopen('php://memory','r+');
fwrite($stream, file_get_contents('php://input',true));
fseek($stream,0);
$data = json_decode($stream);
echo stream_get_contents($data);
?>

是不是在Apaches端分离了传入的请求?我的部分问题是我不懂服务器端的行话。我想说的是php是并发的,或者是线程,但是需要做更多的研究


我将研究socket.io,但基本上我如何将一些数据发布到任何人都可以访问的位置?目前唯一可以访问数据的客户端是发布数据的客户端。

您当前没有从客户端到服务器的持久连接(例如WebSocket),这是问题的症结所在:当客户端1更改按钮时,服务器无法告知客户端2有关更改的信息。您可以让客户端定期轮询服务器并检查状态更改,但这可能无法很好地扩展或支持低延迟


这个问题是非常开放的,但您可能会从一些维护客户端连接和状态的持久化进程中获益。

如果您的应用程序客户端和服务器打算在lan中运行,或者它们的IP地址可以是公共的(而不是nat后面)您可以让他们使用简单套接字定期告诉服务器他们在哪里(ip),当他们收到消息时,服务器将通过套接字通知他们 在这一点上,只有它们像往常一样使用HTTP请求从服务器检索消息 更好的做法是,不要只在新IP地址更改时才定期告诉服务器
如果您正在学习和实验,并且为了制作或严肃的学校项目使用websocket,请执行上述操作。在这里,websocket不是更好的系统吗?您可以使用一个前端服务器,将JSON数据从一个服务器转发到另一个服务器,这是一个非常常见的用例。有点不清楚您到底想做什么。关于按钮和请求在两台服务器之间发送的信息?你能不能用一种更简单的方式重新解释一下这个情况,如果有的话,还可以提供一些代码。HTTP是一个请求-响应系统,你不能严格地在它的范围内做你想做的事情。您需要使用javascript在客户端实现一些功能,用新信息更新浏览器,并在服务器端实现一些功能,以响应更改的轮询请求或处理更改。客户端是否可以自动刷新(使用类似于中的标头)?如果您需要“事件驱动”类型,下面的其他注释会更好。