多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
>[danger] - 该服务依赖 Swoole 扩展,Windows下无法执行。 > - 异步 redis 需按 Swoole 官方要求安装 hiredis 与 重新编译 swoole,详情:https://wiki.swoole.com/wiki/page/p-redis.html 。 > - 请安装小于等于 [4.0.4](https://github.com/swoole/swoole-src/releases/tag/v4.0.4) 版本的 Swoole,因为高版本的 Swoole 移除了异步客户端,如果你使用 MixPHP V2 就不需要这些了,因为 V2 使用的协程。 ## WebSocket 服务 MixPHP 封装了非常完整的 WebSocket 解决方案,开箱即用,还在源代码中附带了完整范例代码。 | 类 | 调用 | | --- | --- | | mix\websocket\WebSocketServer | app()->createObject('name') | ## 使用场景 如: 消息推送、在线聊天、直播弹幕、棋牌游戏等。 ## 优点 - 能与 Session / Token 无缝对接,实现会话机制; - 可异步对接 Redis 的订阅,实现通过消息队列主动发消息至客户端,这样做出来的 WebSocket 服务可以做负载均衡,实现高性能; - 可通过消息处理器进行命令路由,实现传统MC分离的开发方式; - 模型验证器可在 WebSocket 的模型中使用,验证数据的有效性与合法性,远离脏数据、攻击的风险; ## 开发目录 ~~~ apps/ └── websocketd ~~~ ## 命令执行 ~~~ mix-websocketd [入口文件] [命令] [选项] ~~~ ## 范例 ### 配置文件 [>> 到 GitHub 查看默认配置 <<](https://github.com/mix-php/mix/blob/v1/apps/websocketd/config/main.php) ### 控制器代码 源代码的范例里几乎把全部流程都写了,就差业务代码了。 [>> 到 GitHub 查看 DEMO <<](https://github.com/mix-php/mix/blob/v1/apps/websocketd/commands/ServiceCommand.php) ### 进程管理 在命令行使用以下命令管理。 ~~~shell // 查看帮助 mix-websocketd -h // 启动 mix-websocketd service start // 启动(守护) mix-websocketd service start -d // 停止 mix-websocketd service stop // 重启 mix-websocketd service restart // 状态 mix-websocketd service status ~~~ 也可使用如下 Linux 命令管理进程。 ~~~shell // 查找进程 ps -ef | grep mix-websocketd // 结束主进程 kill <PID> ~~~