使用GatewayClient怎么让onClose事件获取绑定的uid

lxd997

急求大佬指点啊,现在卡在这一步了
研究了一下午了都获取不到bindUid里面绑定的uid

下图是在onClose里面获取

下图是输出内容

自带的getSession 存取方法也试了。都拿不到绑定的uid

3043 4 0
4个回答

phpcreeper

首先onClose()里是不能使用 GateWay::getSession()方法的,看你代码逻辑和bindUid()也没啥关系呢,你的问题是获取不到对应的session值吧, 不管怎样,这里使用$_SESSION操作才是正确姿势, 你session赋值的操作是在什么地方进行的? 最简单的排除办法就是: 在图session赋值的后面打印$_SESSION的值先看看有没有写成功。

  • lxd997 2020-01-10

    脑子忽然转了个圈,发现好像你们说的session存值是用的GateWay::setSession() 或者GateWay::updateSession()来存的把,然后取值的时候是用$_SESSION取的吧。我试下

  • lxd997 2020-01-10

    哈哈哈。果然是这样,谢谢老哥。现在可以拿到数据了

lxd997

老哥。谢谢你的回复
不过你说的bindUid我搜索出来几个,在里面都试了没用,下图

我用的是gateway加GatewayClient
bindUid方法是在这里调用的,然后写的$_SESSION存值

在这个控制器里面打印$_SESSION是有数据的,

但是在events的onClose方法里面使用$_SESSION取值 就啥也没有

  • 暂无评论
phpcreeper

你问题虽然解决了,但是我认为你并没有理解正确,我再啰嗦下也许有助于你后续类似问题的解决:
1、补充的截图代码看上去是web应用业务端,lxd_did()方法里的那个$_SESSION要么是php-fpm的,要么是apachehandler的,不管怎样肯定不是gatewayworker的$_SESSION,这两个是完全不同的东西,换句话:你这个地方必须使用 gateway的setSession()接口远程操作;
2、保存和读取session使用$_SESSION或者 setSession()、updateSession()、getSession()等等接口都是可以的,并不是你理解的存只能用谁或者读只能用谁,关于两种使用方法的区别,手册说的非常详尽,自己看吧。

  • lxd997 2020-01-16

    谢谢,前两天住院没上来看,刚看到,谢谢哥指点

元宝

拿bindUid里面绑定的uid 可以逆推 根据客户端id取uid呀

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