如何读写GatewayWorker的SESSSION?

yanpeipan
2996 3 0
3个回答

yanpeipan

看了一下代码, 需要修改源码,不知作者是否加入代码中?

public static function upsetSocketSession($client_id, $session_str)
{
    $gateway_data = GatewayProtocol::$empty;
    $gateway_data = GatewayProtocol::CMD_UPSET_SESSION;
    $gateway_data = $client_id;
    $gateway_data = $session_str;
    return self::sendToGateway(Context::$local_ip . ':' . Context::$local_port, $gateway_data);
}

case GatewayProtocol::CMD_UPSET_SESSION:
if(isset($this->_clientConnections))
{
    $session = Context::sessionDecode($this->_clientConnections->session) ?: [];
    $upset = Context::sessionDecode($this->_clientConnections->session) ?: [];

    $this->_clientConnections->session = Context::sessionEncode(array_merge($upset, $session));
}
break;
  • 暂无评论
walkor
  • yanpeipan 2015-10-30

    这个功能是SET, 不是UPDATE

  • yanpeipan 2015-10-30

    比如:原先SESSION保存着ID, 现在想增加一个NAME, 但要保留原来的ID, 确切的说是UPSERT

walkor

目前GatewayWorker在重构,
楼主可以等待GatewayWorker重构完毕,在github上发个pull request

GatewayWorker大概两周内重构完毕

  • 暂无评论
年代过于久远,无法发表回答
🔝