我目前正在处理一个 Symfony 项目(我们称之为 example.com
),我需要在该项目上更改角色管理。我已经根据新的角色层次修改了 php 代码。
不过,我们还有一个NodeJS服务器负责一个视频流的服务。当客户端连接到他在网页上访问的网络服务时( example.com/webcam
由 symfony/twig 生成),其中包含打开与套接字的连接的 JS。此套接字直接连接到在自定义端口 (wss://example.com:9900
) 上运行的 nodeJS 服务器。
下图总结了这一点。
正如我之前所说,我需要包括一个角色管理。然而,目前,关于角色的一切都位于 symfony 代码中。我不太想把它导出到nodeJS服务器,因为以后维护起来会更难(需要修改的两个地方),而且因为据我所知,在nodeJS中没有完全相同的角色管理。
所以我想过让 websocket 流量通过 symfony,然后将其发送回客户端,如下图所示
但是:
- 我不知道这是否是最好的方法,所以如果您知道另一种方法,或者如果您认为在两个网络服务器上复制角色管理逻辑会更好,我将感谢您的建议
- 如果这是一个很好的方法,我如何在 symfony 上创建一个高效的 websocket 重定向流量?
最佳答案
我认为对于这个问题并没有真正开箱即用的解决方案。为了在 Symfony 和 Node.js 服务器之间共享角色,有必要在一个地方(例如在数据库中)定义它们,然后从那里将它们注入(inject)到两个服务器中。在 Symfony 中,您可以将角色层次结构保存到数据库中:see example here
通过这种方式,您只有一个存储角色的点,这意味着 Node.js 服务器可以从数据库中读取所有角色。
注意:有人在示例的评论中提到此示例不适用于 Symfony 2.8(您没有指定您的 Symfony 版本)。如果你使用 Symfony 2.8,你可以使用 this未维护的 bundle 作为灵感。
关于php - 角色管理 Symfony 和 NodeJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50912458/