Skip to content

如何与其它框架整合

问:

如何与其它 mvc 框架(thinkPHP、Yii 等)整合?

答:

workerman-thinkphp

与其它 mvc 框架结合建议以上图的方式 (ThinkPHP 为例):

1、ThinkPHP 与 Workerman 是两个独立的系统,独立部署 (可部署在不同服务器),互不干扰。

2、ThinkPHP 以 HTTP 协议提供网页页面在浏览器渲染展示。

3、ThinkPHP 提供的页面的 js 发起 websocket 连接,连接 workerman

4、连接后给 Workerman 发送一个数据包 (包含用户名密码或者某种 token 串) 用于验证 websocket 连接属于哪个用户。

5、仅在 ThinkPHP 需要向浏览器推送数据时,才调用 workerman 的 socket 接口推送数据。

6、其余请求还是按照原本 ThinkPHP 的 HTTP 方式调用处理。

总结:

把 Workerman 作为一个可以向浏览器推送的通道,仅仅在需要向浏览器推送数据时才调用 Workerman 接口完成推送。业务逻辑全部在 ThinkPHP 中完成。

ThinkPHP 如何调用 Workerman socket 接口推送数据参考见常见问题 - 在其它项目中推送一节

ThinkPHP 官方已经支持了 workerman,参见 ThinkPHP5 手册

基于 MIT 许可发布