Gateway::setSession后,有删除对应的部分session的方法么

dengdiantao

因业务需要,需要通过session值来设置定时器
最初用的updateSession,得到回执后,需要清理之前定义的session。现在用的方法是 getSession后,unset对应的值,再setSession; 不知道是否有更好的方法。
举例:
//设置定时器
$abc=Timer::add(3,function(){ echo '123';});
Gateway::updateSession($client_id,array($client_id."_111"=>$abc));
//然后ack返回后清理定时器
$getsession=Gateway::getSession($client_id);
Timer::del($getsession[$client_id."_111"]);
//这里有没有比较合适的清理session里面的[$client_id."_111"]方法呢,现在用的是重新session
unset($getsession[$client_id."_111"]);
Gateway::setSession($client_id,$getsession);
//望有更好解决办法的码友,赐教一下

1714 1 0
1个回答

walkor

gatewayWorker里目前没有删除session中某个值的方法。

如果业务允许,可以尝试 Gateway::updateSession($client_id,array($client_id."_111"=>null));

  • dengdiantao 2020-09-08

    恩恩,已经使用了update来处理,并且使用正常。谢谢了

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