国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

onWebSocketConnect函數(shù)觸發(fā)問(wèn)題

h0r1z0n

之前寫了個(gè)測(cè)試 3.5.16版本測(cè)試的 打開(kāi)兩個(gè)websocket ,Events.php?onWebSocketConnect寫邏輯 測(cè)試2304端口可以進(jìn)入?onWebSocketConnect函數(shù) 進(jìn)行業(yè)務(wù)實(shí)現(xiàn)

<?php 
/**
 * This file is part of workerman.
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the MIT-LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @author walkor<walkor@workerman.net>
 * @copyright walkor<walkor@workerman.net>
 * @link http://www.wtbis.cn/
 * @license http://www.opensource.org/licenses/mit-license.php MIT License
 */
use \Workerman\Worker;
use \Workerman\WebServer;
use \GatewayWorker\Gateway;
use \GatewayWorker\BusinessWorker;
use \Workerman\Autoloader;

// 自動(dòng)加載類
require_once __DIR__ . '/../../vendor/autoload.php';

// 0.0.0.0 代表監(jiān)聽(tīng)本機(jī)所有網(wǎng)卡,不需要把0.0.0.0替換成其它IP或者域名
// 這里監(jiān)聽(tīng)8080端口,如果要監(jiān)聽(tīng)80端口,需要root權(quán)限,并且端口沒(méi)有被其它程序占用
//$webserver = new WebServer('http://0.0.0.0:2302');
// 類似nginx配置中的root選項(xiàng),添加域名與網(wǎng)站根目錄的關(guān)聯(lián),可設(shè)置多個(gè)域名多個(gè)目錄
//$webserver->addRoot('gw.xxxx.cn', '/data/gw/www/');

// 設(shè)置開(kāi)啟多少進(jìn)程
//$webserver->count = 4;

// #### http worker ####
//$http_worker = new Worker("http://0.0.0.0:2302");
//
//// 4 processes
//$http_worker->count = 4;
//
//// Emitted when data received
//$http_worker->onMessage = function($connection, $data)
//{
//    // $_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER, $_FILES are available
//    var_dump($_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER, $_FILES);
//    // send data to client
//    //$connection->send("hello world \n");
//
//    $connection->send(print_r(Gateway::getClientIdByUid('123456')) );
//
//
//};

// run all workers
//Worker::runAll();
$gateway = new Gateway("websocket://0.0.0.0:2302");
$gateway->name = 'Websocket Gateway';
$gateway->count = 4;
$gateway->lanIp = '127.0.0.1';
$gateway->startPort = 1920;
$gateway->registerAddress = '127.0.0.1:1238';
$gateway->onConnect = function($connection)
{
    $connection->onWebSocketConnect = function($connection , $http_header)
    {
        // 可以在這里判斷連接來(lái)源是否合法,不合法就關(guān)掉連接
        // $_SERVER標(biāo)識(shí)來(lái)自哪個(gè)站點(diǎn)的頁(yè)面發(fā)起的websocket鏈接
        //if($_SERVER != 'http://kedou.workerman.net')
        //{
           // $connection->close();
        //}
        // onWebSocketConnect 里面$_GET $_SERVER是可用的
         //var_dump($_GET, $_SERVER,$http_header);
    };
}; 

$gateway = new Gateway("websocket://0.0.0.0:2304");
$gateway->name = 'Another Websocket Gateway';
$gateway->count = 4;
$gateway->lanIp = '127.0.0.1';
$gateway->startPort = 1940;
$gateway->registerAddress = '127.0.0.1:1238';

// gateway 進(jìn)程,這里使用Text協(xié)議,可以用telnet測(cè)試
$gateway = new Gateway("tcp://0.0.0.0:2303");
// gateway名稱,status方便查看
$gateway->name = 'Socket Gateway';
// gateway進(jìn)程數(shù)
$gateway->count = 2;
// 本機(jī)ip,分布式部署時(shí)使用內(nèi)網(wǎng)ip
$gateway->lanIp = '127.0.0.1';
// 內(nèi)部通訊起始端口,假如$gateway->count=4,起始端口為4000
// 則一般會(huì)使用4000 4001 4002 4003 4個(gè)端口作為內(nèi)部通訊端口 
$gateway->startPort = 2900;
// 服務(wù)注冊(cè)地址
$gateway->registerAddress = '127.0.0.1:1238';

// 心跳間隔
//$gateway->pingInterval = 10;
// 心跳數(shù)據(jù)
//$gateway->pingData = '{"type":"ping"}';

/* 
// 當(dāng)客戶端連接上來(lái)時(shí),設(shè)置連接的onWebSocketConnect,即在websocket握手時(shí)的回調(diào)
$gateway->onConnect = function($connection)
{
    $connection->onWebSocketConnect = function($connection , $http_header)
    {
        // 可以在這里判斷連接來(lái)源是否合法,不合法就關(guān)掉連接
        // $_SERVER標(biāo)識(shí)來(lái)自哪個(gè)站點(diǎn)的頁(yè)面發(fā)起的websocket鏈接
        if($_SERVER != 'http://kedou.workerman.net')
        {
            $connection->close();
        }
        // onWebSocketConnect 里面$_GET $_SERVER是可用的
        // var_dump($_GET, $_SERVER);
    };
}; 
*/

// 如果不是在根目錄啟動(dòng),則運(yùn)行runAll方法
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

然后我在老版本3.5.5上寫 也是在不一個(gè)不需要的ws服務(wù)上寫一個(gè)onConnect函數(shù)(此服務(wù)是個(gè)wss服務(wù) 帶證書),然后我新開(kāi)了一個(gè)端口ws服務(wù)(無(wú)證書), 不在 start_gateway.php 中寫onConnect函數(shù) 然后在Events.php寫了?onWebSocketConnect() 但是死活不進(jìn)去觸發(fā) ,是為什么呢

7135 1 0
1個(gè)回答

朕震驚了

手冊(cè)說(shuō)Events 的 onWebSocketConnect 方法只有在GatewayWorker版本>=3.0.8時(shí)才支持。是GatewayWorker版本版本哦,不是workerman版本。
http://doc2.workerman.net/on-web-socket-connect.html
這里說(shuō)的,你看看是不是版本不對(duì)吧。
我用著很好用的

  • h0r1z0n 2019-01-17

    非常感謝 查了下版本為3.0.7 更新版本再試

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??