SwooleWorker是基于swoole开发的一款分布式长连接开发框架。常驻内存,协程,高性能高并发;分布式部署,横向扩容,使得能支持庞大的连接数;无感知安全重启,无缝升级代码;接口丰富,支持单个发送,分组发送,群发广播等接口。可广泛应用于云计算、物联网(IOT)、车联网、智能家居、网络游戏等领域。
系统架构
![架构图]()
安装
composer require xielei/swoole-worker
接口
| 接口 |
参数 |
返回值 |
| sendToClient |
string $client, string $message |
|
| sendToUid |
string $uid, string $message, array $without_client_list = [] |
|
| sendToGroup |
string $group, string $message, array $without_client_list = [] |
|
| sendToAll |
string $message, array $without_client_list = [] |
|
| isOnline |
string $client |
|
| isUidOnline |
string $uid |
bool |
| getClientListByGroup |
string $group, string $prev_client = null |
iterable |
| getClientCount |
|
int |
| getClientCountByGroup |
string $group |
int |
| getClientList |
string $prev_client = null |
iterable |
| getClientListByUid |
string $uid, string $prev_client = null |
iterable |
| getClientInfo |
string $client, int $type = 255 |
array |
| getUidListByGroup |
string $group, bool $unique = true |
iterable |
| getUidList |
bool $unique = true |
iterable |
| getUidCount |
float $unique_percent = null |
int |
| getGroupList |
bool $unique = true |
iterable |
| getUidCountByGroup |
string $group |
int |
| closeClient |
string $client, bool $force = false |
|
| bindUid |
string $client, string $uid |
|
| unBindUid |
string $client |
|
| joinGroup |
string $client, string $group |
|
| leaveGroup |
string $client, string $group |
|
| unGroup |
string $group |
|
| setSession |
string $client, array $session |
|
| updateSession |
string $client, array $session |
|
| deleteSession |
string $client |
|
| getSession |
string $client |
?array |
更新日志
2.x对配置项做了优化,配置项修改即生效,无须重启~
在正式项目中,变更配置无须重启服务,用户无感知~
详情参考脚手架【https://gitee.com/hetangys/project】项目。
Register
debug、register_secret、reload_watch等参数放入配置文件
Gateway
debug、register_secret、reload_watch等放入配置文件
- 新增自定义命令配置项
command_extra_list,原来的自定义命令方式废弃
- 新增路由配置项
router,原来的路由设置方式废弃
- 限流相关配置项
throttle,throttle_interval,throttle_times,throttle_close放入配置文件
Worker
debug、register_secret、reload_watch等参数放入配置文件
worker_file,task_file等参数放入配置文件
- 新增
tag_list配置项,设置worker的标签,在gateway中可以根据此标签增强路由分配