wokerman chat
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chat_room/Application/start_gateway_text.php

52 lines
1.6 KiB

<?php
use \Workerman\Worker;
use \GatewayWorker\Gateway;
use \Workerman\Autoloader;
// 自动加载类
require_once __DIR__ . '/../Workerman/Autoloader.php';
Autoloader::setRootPath(__DIR__);
// gateway 进程
$gateway_text = new Gateway("text://0.0.0.0:7373");
// 设置名称,方便status时查看
$gateway_text->name = 'ChatGatewayText';
// 设置进程数,gateway进程数建议与cpu核数相同
$gateway_text->count = 4;
// 分布式部署时请设置成内网ip(非127.0.0.1)
$gateway_text->lanIp = '10.27.184.251';
// 内部通讯起始端口,假如$gateway_text->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口
$gateway_text->startPort = 2400;
// 心跳间隔
$gateway_text->pingInterval = 15;
// 心跳数据
$gateway_text->pingData = '{"type":"ping"}';
// 服务注册地址
$gateway_text->registerAddress = '10.27.184.251:1236';
/*
// 当客户端连接上来时,设置连接的onWebSocketConnect,即在websocket握手时的回调
$gateway_text->onConnect = function($connection)
{
$connection->onWebSocketConnect = function($connection , $http_header)
{
// 可以在这里判断连接来源是否合法,不合法就关掉连接
// $_SERVER['HTTP_ORIGIN']标识来自哪个站点的页面发起的websocket链接
if($_SERVER['HTTP_ORIGIN'] != 'http://chat.workerman.net')
{
$connection->close();
}
// onWebSocketConnect 里面$_GET $_SERVER是可用的
// var_dump($_GET, $_SERVER);
};
};
*/
// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}