>[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>
~~~
- 欢迎使用 MixPHP
- 安装说明
- 常规安装
- 只安装命令行
- Apache/PHP-FPM安装
- 开发与调试
- 开发注意事项
- 调试与错误
- 基础架构
- 目录结构
- 目录设计
- URL访问
- 命名空间
- 自动加载
- 入口文件
- 框架核心
- Application
- 配置
- 对象
- 组件
- 门面
- 系统服务
- 中间件
- 验证器
- 验证器定义
- 验证规则
- 静态调用
- 模型
- 日志
- 命令行
- 简介
- 命令行开发常识
- 创建命令
- 执行与选项
- 控制台程序
- 守护程序
- HTTP 服务
- 简介
- 服务器
- 路由
- 请求
- 响应
- 控制器
- 视图
- Token
- Session
- Cookie
- 文件上传
- 图片处理
- 分页
- 验证码
- WebSocket 服务
- 简介
- 回调函数
- 消息处理器
- 客户端测试
- nginx代理
- 60s无消息断线
- 多进程
- ProcessPoolTaskExecutor
- 流水线模式
- 推送模式
- 在 Supervisor 中使用
- 协程
- 简介
- 如何开启协程
- HTTP 协程开发
- 命令行协程开发
- 客户端
- MySQL
- PDO
- PDOPersistent
- PDOMasterSlave
- PDOCoroutine
- Redis
- Redis
- RedisPersistent
- RedisCoroutine
- 外部工具库
- 简介
- think-orm
- psr-log
- 安全建议
- 常见问题
- 启动多个 HTTP 服务器
- 连接多个数据库
- 如何设置跨域
- mix-httpd service stop 无效
- No such file or directory
- 错误级别配置不生效
- 推进计划
- 文档历史