Gateway,Session得到的问题。

banice

问题描述,在Events onConect里我对每个连接进行session的初始化,其实有一个powerNum长度为10的数组,初始全为1.我在onMessage里提取的时候分别用$_SESSION和Gateway::getSession()。去除powerNum后将数组中的某值改为0,然后将更改后的变量重新赋值给$_SESSION。用$_SESSION方式提取出的值每次都是全为1的,即使更改后重新赋值,再次取出又全部为1.getSession则不会。这是为什么?

5512 1 0
1个回答

walkor

$_SESSION 存取是异步的可能有延迟。

用接口Gateway::setSession/getSession 存取$_SESSION试下

  • banice 2017-06-14

    还是有些问题,多次测试后发现用getSession和setSession也存在,我是下位机发送指令后更改session数组中的值为0,1,1,1再一条命令把值改为0,0,1,1,但是GatewayClient去查session中的这个数组确实1,0,1,1,偶尔会出现这种情况,但是最让我不能理解的是为什么是1011,第一个数值却没办,我是根据uid查session在gatewayclient中,测试的时候下位机是断电加电的方式在重连。连上后绑定uid。

  • walkor 2017-06-14

    看下client_id对不对把

  • banice 2017-06-17

    @1:对的,我一个client_id对一个uid,uid去id,然后数组的第一个id。

  • banice 2017-06-17

    @1:我在找找吧,应该是代码的问题,估计在别的地方有别的命令导致了重置。

年代过于久远,无法发表回答
🔝