icekson / ws-app-server
可伸缩的 WebSocket 服务器
v0.9.1.0
2016-10-18 10:58 UTC
Requires
- bunny/bunny: v0.2.0
- cboden/ratchet: ^0.3.3
- hassankhan/config: ^0.8.2
- icekson/remote-services: 0.9.0.*
- icekson/utils: 0.9.0.*
- monolog/monolog: ^1.17
- predis/predis: v1.0.*
- react/react: ^0.4.2
- symfony/console: ~2.8|3.0.*|3.1.*
- symfony/process: ~2.8|3.0.*|3.1.*
- videlalvaro/php-amqplib: 2.*.*
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-14 18:58:26 UTC
README
WebSocket 服务器使用方法
服务和配置的描述
config/autoload/server.json 包含所有关于服务的信息。支持几种类型的服务
- 连接器服务:主要目的是通过 WebSocket(RPC、订阅/取消订阅、接收事件)为所有客户端请求提供服务;
- 网关服务:用于初始化 WebSocket 客户端的 WS 服务,并作为网关。它的目的是在初始化过程中为客户端提供服务,并给出合适的连接器服务地址和端口;
- 后端服务:特定类型的服务,旨在为所有 RPC 请求提供服务。所有业务逻辑都将在这种服务内部执行;
- 作业服务:此类服务用作即时作业的工作者,这些作业使用 RabbitMQ 队列工作;
服务器配置文件示例
{
"ws-server": {
"services": {
"gate-server-1": {
"php_path": "php",
"name": "gate-server-1",
"class": "Icekson\\WsAppServer\\Service\\GateService",
"host": "vps.cricket.program-ace.net/ws-gate/",
"port": 80,
"bind_port": 5000
},
"connector-server-1": {
"php_path": "php",
"name": "connector-server-1",
"class": "Icekson\\WsAppServer\\Service\\ConnectorService",
"host": "vps.cricket.program-ace.net/ws1/",
"identity_finder_class" : "Application\\Utils\\UserIdentityFinder",
"port": 80,
"bind_port": 5001
},
"connector-server-2": {
"php_path": "php",
"name": "connector-server-2",
"class": "Icekson\\WsAppServer\\Service\\ConnectorService",
"host": "vps.cricket.program-ace.net/ws2/",
"identity_finder_class" : "Application\\Utils\\UserIdentityFinder",
"port": 80,
"bind_port": 5002
},
"backend-server": {
"php_path": "php",
"name": "backend-server-1",
"class": "Application\\Service\\BackendService",
"processes_limit": 20,
"count": 1,
"debug": true
},
"jobs-server-1": {
"php_path": "php",
"name": "jobs-server-1",
"class": "Icekson\\WsAppServer\\Service\\JobsService",
"routing_key": "match"
},
}
}
}
脚本命令
运行服务器
配置目录或文件的路径,非必填字段
php scripts/runner.php app-server:start --config-path="./config/autoload/"
检查服务器状态
检查服务器,如果未启动则启动它
php scripts/runner.php app-server:check
停止服务器
php scripts/runner.php app-server:stop
测试工具
#运行应用程序日志监控器 它通过 RabbitMQ 工作,显示使用 Icekson\Utils\Logger 的系统脚本的所有日志
php scripts/runner.php tool:logs-monitor