使用PHP更新多个MVC的模型更改视图

时间:2019-09-16 15:59:48

标签: php model-view-controller server-sent-events

应采用什么方法,机制(可能还有代码)来完全实现“模型状态更改”事件上的“从视图到视图”数据更新(传输)用纯PHP?


如果我没记错的话, MVC模式指出了将数据从模型层发送到所有活动视图 s 的隐式要求,并指定“视图随着模型更改而更新”。 (否则,这没有任何意义,因为使用相同源的用户会看到其数据处于非运行状态,并且完全脱离了现实)

但是PHP是脚本PL,因此它仅限于通过进程的“连接线程”,并且其生命周期仅限于请求-响应周期(如tereško所指出)。


因此,必须解决几个问题:

  1. 客户端必须与服务器建立活动隧道连接(服务器发送事件),
  2. 服务器必须能够数据推送到客户端(flush()ob_flush()
  3. 必须引发Model-State-Change事件并打包相关数据以进行传输,
  4. )数据必须一起发送到所有 活动客户端(连接到相同的确切资源/ URL),而不仅仅是当前一个使用它自己的进程和ModelClass.php文件的实例...


更新1:因此,似乎与多个用户使用PHP进行“同时”交互涉及通过某种套接字(独立于NGINX和其他套接字)实现WEB Server。...使其核心无阻塞I / O,存储连接和“简单”循环连接,提供数据。...
因此,如果我没记错的话,最简单的方法仍然是去获得一些像Ratchet这样的现成的解决方案,无论是“并发框架”还是套接字上的WEB服务器...
不过,每天要发送几封邮件的开销太大了...
AJAX短轮询似乎可以很好地解决这一难题。...

我想知道,使用一些与PHP不同的后端来同时更新多个客户端是否容易?我想知道。C#-它是基于事件的,如果我没记错的话,不仅限于“连接线程”和查询-答复生命周期。 ..但这仍然是WEB(通过相同的HTTP?)...

0 个答案:

没有答案