实时应用程序是如何实现的?Websockets/PHP


How are realtime applications implemented? Websockets/PHP

我想创建一个web应用程序,其中UI实时更新(或尽可能接近实时)。UI的数据来自服务器。

我不想使用传统的HTTP请求,因为我经常向服务器发送新数据的请求。我宁愿打开一个连接,让服务器将数据推送到客户端。

我认为这是发布者/订阅者的模式。

我听说有人提到zeromqReact,并使用Websockets。但从我看过的所有例子中,我真的找不到任何关于这方面的东西。例如,zeromq具有显示服务器和客户端的示例。我是否实现服务器,然后使用UI端的websocket作为客户端?

这样的东西将如何实现?

传统的HTTP请求仍然是这一切的意义所在。

您可以有常规HTTP请求:-用户向服务器发送请求-服务器响应所述请求

还有Ajax轮询Ajax长轮询

Ajax轮询意味着每X秒向发送一个HTTP请求以查找新信息。示例:获取一个节的新注释。

Ajax长轮询类似,但当您向服务器发送请求时,如果没有准备好向客户端提供的响应,则让连接挂起(在定义的一段时间内)。如果在此期间有新信息进入,则说明您已经在等待它。否则,在时间到期后,进程将重新启动。你不需要来回发送请求,而是发送一个请求——等待,等待——无论你是否收到响应,一段时间后,你都会重新启动这个过程。

WebSocket仍然是一个HTTP请求。它包括客户端通过打开WebSocket请求到目的地来处理前端的权重。这个连接不会关闭,它会来回接收和发送实时信息。来自服务器的特定操作和回复需要进行编程,并在客户端进行回调。使用WebSockets,您可以实时接收和传输,这是一个双工双向连接。

所以是的,以防不清楚。您设置了一个WebSocket服务器,在循环中运行,等待连接。当它收到一个时,所述服务器和客户端之间会进行类似聊天的通信;需要对服务器响应进行编程回调的客户端。