1: Phlo Realtime 概述

Phlo Realtime 是 Phlo 平台的实时层。它允许 Phlo 应用通过 WebSockets 向连接的浏览器推送,而无需离开 Phlo 语言:您编写的 .phlo 处理程序与您已经编写的相同,Phlo Daemon 将每个套接字事件交给您的应用,作为每个事件的全新进程,或者在您需要吞吐量时通过常驻工作池处理。

Phlo Realtime live-poll

1.1: 模型

Phlo Realtime 是内置于 Phlo Daemon 的 WebSocket 层:一个守护进程拥有所有的套接字连接。当客户端连接、认证、发送消息或断开连接时,守护进程以与 HTTP 请求相同的方式运行您的应用程序,调度到其自己的工作池中。您的处理程序运行,选择性地广播,并返回。套接字和 PHP 运行在同一个进程中:没有单独的服务,没有额外的网络跳转。

这使得实时代码与 Phlo 的其余部分保持相同的思维模型:短小的处理程序,数据库中的显式状态,没有特殊的运行时需要考虑。

守护进程以两种模式之一运行每个主机(请参见 WebSocket guide):一次性,每个事件一个新的 PHP 进程(一个 build: true 的应用程序,适合开发及其热重载),或 常驻工作池(一个发布应用程序),在生产吞吐量下只启动一次应用程序。模式遵循应用程序的构建标志,而不是配置条目。处理程序代码是相同的;在池模式下,应用程序是常驻的,phlo('tech/reset') 在调用之间清除每个事件的状态,因此无论哪种方式,都要编写安全的处理程序(在 static 中没有请求或用户状态,提交或回滚数据库工作)。

1.2: 何时使用它

当浏览器需要被告知一些它没有请求的内容时,请使用 Phlo Realtime:实时计数器、在线状态、聊天、通知、仪表板、协作状态。如果一个普通的 async 表单往返就足够了(Poll 教程就是这样工作的),那么您根本不需要 Phlo Realtime。Phlo Realtime 是一个附加步骤:一个应用在没有实时功能的情况下仍然可以正常工作,当守护进程运行时,它会变得活跃。

1.3: 你连接的是什么

phlo-demo-poll 仓库是所有这些内容的源代码参考:该投票现在支持 Phlo Realtime,直接延续自 Poll tutorial

我们使用必要的cookie来使该网站正常工作。在您的许可下,我们还使用分析工具来改善网站。