|
| 1 | +<?php |
| 2 | +/** |
| 3 | + * This file is part of workerman. |
| 4 | + * |
| 5 | + * Licensed under The MIT License |
| 6 | + * For full copyright and license information, please see the MIT-LICENSE.txt |
| 7 | + * Redistributions of files must retain the above copyright notice. |
| 8 | + * |
| 9 | + * @author walkor<walkor@workerman.net> |
| 10 | + * @copyright walkor<walkor@workerman.net> |
| 11 | + * @link http://www.workerman.net/ |
| 12 | + * @license http://www.opensource.org/licenses/mit-license.php MIT License |
| 13 | + */ |
| 14 | +use \Workerman\Worker; |
| 15 | +use \Workerman\WebServer; |
| 16 | +use \GatewayWorker\Gateway; |
| 17 | +use \GatewayWorker\BusinessWorker; |
| 18 | +use \Workerman\Autoloader; |
| 19 | + |
| 20 | +// 自动加载类 |
| 21 | +require_once __DIR__ . '/../../vendor/autoload.php'; |
| 22 | + |
| 23 | +// gateway 进程,这里使用Text协议,可以用telnet测试 |
| 24 | +$gateway = new Gateway("websocket://0.0.0.0:1800"); |
| 25 | +// gateway名称,status方便查看 |
| 26 | +$gateway->name = 'YourAppGateway'; |
| 27 | +// gateway进程数 |
| 28 | +$gateway->count = 4; |
| 29 | +// 本机ip,分布式部署时使用内网ip |
| 30 | +$gateway->lanIp = '127.0.0.1'; |
| 31 | +// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000 |
| 32 | +// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口 |
| 33 | +$gateway->startPort = 2900; |
| 34 | +// 服务注册地址 |
| 35 | +$gateway->registerAddress = '127.0.0.1:1680'; |
| 36 | + |
| 37 | +// 心跳间隔 |
| 38 | +//$gateway->pingInterval = 10; |
| 39 | +// 心跳数据 |
| 40 | +//$gateway->pingData = '{"type":"ping"}'; |
| 41 | + |
| 42 | +/* |
| 43 | +// 当客户端连接上来时,设置连接的onWebSocketConnect,即在websocket握手时的回调 |
| 44 | +$gateway->onConnect = function($connection) |
| 45 | +{ |
| 46 | + $connection->onWebSocketConnect = function($connection , $http_header) |
| 47 | + { |
| 48 | + // 可以在这里判断连接来源是否合法,不合法就关掉连接 |
| 49 | + // $_SERVER['HTTP_ORIGIN']标识来自哪个站点的页面发起的websocket链接 |
| 50 | + if($_SERVER['HTTP_ORIGIN'] != 'http://kedou.workerman.net') |
| 51 | + { |
| 52 | + $connection->close(); |
| 53 | + } |
| 54 | + // onWebSocketConnect 里面$_GET $_SERVER是可用的 |
| 55 | + // var_dump($_GET, $_SERVER); |
| 56 | + }; |
| 57 | +}; |
| 58 | +*/ |
| 59 | + |
| 60 | +// 如果不是在根目录启动,则运行runAll方法 |
| 61 | +if(!defined('GLOBAL_START')) |
| 62 | +{ |
| 63 | + Worker::runAll(); |
| 64 | +} |
| 65 | + |
0 commit comments