Server-Sent Events (SSE),是 HTML5 声明式时间API 的一部分,允许Web端应用程序和服务端实时通讯,以达到 事件推送 的目的。在企业应用程序中,多租户、多用户和多应用场景下的 SSE 也得到越来越多的应用。
本文将介绍 SSE 在多租户、多用户和多应用场景下的使用场景,并针对每一种情况,给出详细的指导和实现代码。
多租户场景
在 SaaS 应用程序中,多租户(multi-tenancy)是一个非常常见的场景。每个租户(tenant)有其自己的独立数据库、账户、设置等信息。而且在一个服务器上,可能会同时服务多个租户。
在多租户场景中,SSE 可以被用来实现 租户相关事件。比如,在支持互联网金融的 SaaS 应用中,一个租户会经常收到许多和他相关的实时数据变化,例如他的账户余额、投资收益等等。就可以使用 SSE 把这些实时数据传输到前端,进行实时更新。
下面是实现 SSE 多租户场景的代码:
----- ------ - --- ------------------------------------- ---------------- - --------------- - --------------- --- ---------- ------------ --
在后端,server.php
会根据请求中的 tenant
参数判断该请求来自哪个租户,并向连接的客户端传输该租户的相关数据。
多用户场景
在多用户场景下,SSE 可以被用来实现 用户相关事件。比如,在社交网络的 Web 应用程序中,一个用户会绑定其自己的好友列表,并实时接受好友的实时消息。这时候就可以使用 SSE 把消息传递给前端,进行实时的展示。
下面是实现 SSE 多用户场景的代码:
----- ------ - --- ----------------------------------- ---------------- - --------------- - --------------- --- ---------- ------------ --
在后端,server.php
会根据请求中的 user
参数判断该请求来自哪个用户,并向连接的客户端传输该用户的相关数据。
多应用场景
在多应用场景下,使用 SSE 可以实现前后端实时的通迅,比如,一个 Web 应用程序内可能包含多个独立的子应用,这些子应用之间没有依赖关系,但又需要进行实时通讯。这时,可以使用 SSE 来实现子应用间的通讯。
下面是实现 SSE 多应用场景的代码:
----- ------ - --- ---------------------------------- ---------------- - --------------- - --------------- --- ---------- ------------ --
在后端,server.php
会根据请求中的 app
参数判断该请求来自哪个应用,并向连接的客户端传输该应用的相关数据。
结论
SSE 的优点在于 轻量级 并且 易于实现,可以让开发人员很方便的在前后端实现实时通信。在多租户、多用户和多应用场景下,SSE 的好处就更加显然了,可以让前端应用程序更加的 快速、高效、响应式。考虑到安全性,后端需要对别人的参数进行过滤与校验,避免参数篡改造成的漏洞。
参考文献:HTML5 Web 视频技术技巧
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/66ee56a36fbf960197215eae