workerman与其它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中完成。
websocket服务端代码
外层worker为websocket服务,可以接收客户端(如小程序)数据,可以向客户端推送数据;
内层wordker为Text协议,可以接收后台(如thinkphp或YII)的数据,然后根据后台发送的指令,向不同客户端发送消息<?php
//启动socket服务
require_once __DIR__ . '/Autoloader.php';
use Worker