PHP与TCP服务器的套接字连接

4
我有以下情况:
我有一个给定的程序,提供了一个JSON接口,我可以使用套接字连接连接到它。由于我想将该接口集成到我的Web应用程序中,我正在尝试使用PHP套接字进行服务器和客户端之间的通信。通信是双向的,这意味着我的PHP客户端正在向服务器发送请求,服务器也正在向我的PHP“客户端”发送请求。我在PHP和JSON接口之间的连接没有问题。唯一的问题是,因为我必须在PHP端等待请求,所以我必须将其运行在无限循环中。我想在不使用该无限循环的情况下在我的Web应用程序中将某些响应和请求“echo”到某个地方。
我的问题是,是否有一种好方法创建一个可以执行以下操作的PHP文件:
- 创建自己的套接字服务器,以便我可以从我的Web应用程序发送内容而不被困在无限循环中 - 我发送的内容可以重定向到JSON服务器 - 我从JSON服务器收到的响应重定向到我的Web应用程序
我已经找到了解决方案的使用情况:我有一个NFC读卡器,可以为我提供卡片(uniqueid)的功能和信息,并与我的网络连接。JSON服务器会向我发送“检测到卡”的请求,我会回复“允许”或“不允许”。 (这里无限循环不重要)
我没有解决方案的使用情况:我的Web应用程序已打开,我想将“uniqueid”参数写入输入字段以将该卡片分配给一个人。我希望通过以下方式完成:
- 点击“分配卡”按钮 - 将卡保持在读卡器上 - 将uniqueid写入输入字段
我不想直接从Web应用程序连接到JSON服务器。我想从Web应用程序到具有与JSON服务器的永久连接的PHP服务器建立临时连接。
我希望这是可以理解的。

1
你看过WebSockets吗?这将允许你在浏览器和Web服务器之间保持连续的双向套接字连接。 - insanebits
我正要说和@insanebits一样的话。你可能想查看这个教程以获取更多细节。 - tftd
哦,太棒了!那可能会有所帮助!我会去查看一下。谢谢! - Florian Sauerwein
等一下,我以前试过使用这个。但它不支持TCP套接字。所以你的意思是我可以像这样使用它:webapp <-> php套接字 <-> TCP套接字(JSON接口)? - Florian Sauerwein
1个回答

1

是的,你可以。研究一下在你的应用程序中使用Ratchet。它似乎符合你的要求。它通过Websockets具有双向通信功能。

你的浏览器将连接到服务器上运行的基于Ratchet的应用程序,并监听某个端口,你将能够使用该连接发送和接收消息。

另一种选择是长轮询。你可以在这个StackOverflow答案中了解更多信息(其中也包括Websockets)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接