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

怎樣正確綁定uid,以及使用?

kenny534

server.php如下:

<?php
define('APP_PATH', __DIR__ . '/bookapp/');
define('BIND_MODULE','kenny/Gate');
// 加載框架引導文件
require __DIR__ . '/thinkphp/start.php';
Gage.php文件如下:
namespace app\kenny\controller;

use Workerman\Worker;
use GatewayWorker\Gateway;
use GatewayWorker\Register;
use GatewayWorker\BusinessWorker;

class Gate{
? ? /**
? ? ?* 構(gòu)造函數(shù)
? ? ?* @access public
? ? ?*/
? ? public function __construct(){
? ? ? ??
? ? ? ? //初始化各個GatewayWorker
? ? ? ? //初始化register register 服務(wù)必須是text協(xié)議
? ? ? ? $register = new Register('text://0.0.0.0:1237');

? ? ? ? //初始化 bussinessWorker 進程
? ? ? ? $worker = new BusinessWorker();
? ? ? ? // worker名稱
? ? ? ? $worker->name = 'AppBusinessWorker';
? ? ? ? // bussinessWorker進程數(shù)量
? ? ? ? $worker->count = 2;
? ? ? ? // 服務(wù)注冊地址
? ? ? ? $worker->registerAddress = '192.168.18.9:1237';
? ? ? ? //設(shè)置處理業(yè)務(wù)的類,此處制定Events的命名空間
? ? ? ? $worker->eventHandler = 'app\kenny\controller\Events';

? ? ? ? // 初始化 gateway 進程
? ? ? ? $gateway = new Gateway("book://0.0.0.0:9526");?
? ? ? ? // 設(shè)置名稱,方便status時查看
? ? ? ? $gateway->name = 'AppGateway';
? ? ? ? $gateway->count = 1;
? ? ? ? // 分布式部署時請設(shè)置成內(nèi)網(wǎng)ip(非127.0.0.1)
? ? ? ? $gateway->lanIp = '192.168.18.9';

? ? ? ? $gateway->startPort = 2300;
? ? ? ? // 心跳間隔
? ? ? ? $gateway->pingInterval = 180;
? ? ? ? $gateway->pingNotResponseLimit = 1;
? ? ? ? // 心跳數(shù)據(jù)
? ? ? ? $gateway->pingData = "ping";
? ? ? ? // 服務(wù)注冊地址
? ? ? ? $gateway->registerAddress = "192.168.18.9:1237";
? ? ? ? //運行所有Worker;
? ? ? ? Worker::runAll();
? ? }
}

Events.php如下:

<?php
namespace app\kenny\controller;

use \GatewayWorker\Lib\Gateway;

class Events{
? ? public static function onConnect($client_id){
? ? ? ? Gateway::sendToCurrentClient('onConnect:'.$client_id);
? ? }
? ??
? ? public static function onMessage($client_id,$message){
? ? ? ? //判斷是否綁定了uid
? ? ? ? if (!isset($client_id->uid)){
? ? ? ? ? ? echo "no uid\n";
? ? ? ? ? ? Gateway::bindUid($client_id,2);
? ? ? ? }else{
? ? ? ? ? ? echo "uid\n";
? ? ? ? }
? ? }
}?

//收到消息時,始終輸出 no uid ,請問如何在onMessage里識別當前是否綁定了uid ?

9911 5 0
5個回答

土豆沒有皮

Gateway :: getUidByClientId($ client_id)返回client_id綁定的uid,如果client_id沒有綁定uid,則返回null。

  • 暫無評論
latin

Gateway::getUidByClientId(string $client_id)
基本接口使用看手冊就好

  • 暫無評論
kenny534

$ret = Gateway::getUidByClientId($client_id);
if (!$ret){

echo 'ret=\n";
echo "no uid\n";
Gateway::bindUid($client_id,2);

}else{
echo "uid\n";
}修改成這樣了,連接上后,每次收到消息,都判斷為no uid 這是哪里沒有用對?

  • 暫無評論
土豆沒有皮

你是不是沒有調(diào)用 Gateway::bindUid()綁定UID

kenny534

問題找到了,在使用Gateway::bindUid($client_id,2);時,第二個參數(shù),不能使用數(shù)字,改為:
Gateway::bindUid($client_id,'2');就正常了,修改后如下:
$ret = Gateway::getUidByClientId($client_id);
if (!$ret){

echo 'ret=\n";
echo "no uid\n";
Gateway::bindUid($client_id,'2');

}else{
echo "uid\n";
}

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??