Swoole中的会话期如何实现呢?

乐乐大人
  • 42

RT
通过Swoole/Server创建了一个SWOOLE_PROCESS模式运行的TCP服务器。
没有成功实验到会话期。
尝试在onConnect时候创建的对象在onReceive无法访问。
测试代码

#https://wiki.swoole.com/wiki/page/354.html
<?php
$server = new Swoole\Server('0.0.0.0', 6789, SWOOLE_PROCESS, SWOOLE_SOCK_TCP);
$server->on('Connect',function($serv, $fd, $reactorId){
    //global $a;
    $a  = '123';
});
$server->on('Receive',function($serv, $fd, $reactorId, $data){
    // global $a;
    var_dump($a);
});
$server->start();

当不加global时 在数据接收无法访问到$a
当加了的时候 会变成进程全局期
如何实现会话期呢
望不吝赐教!谢谢!

回复
阅读 609
1 个回答

无意间上来看到这个问题,自回答一下

其实这是个无意义问题,由于官网文档描述不详导致,swoole不存在会话期的内部实现,需要从业务代码自己实现对单个fd的数据绑定,来做到"会话期".
swoole本身只有进程全局 和Receive局部期2种状态可以直接用变量存数据 其他需要自己在代码实现 将数据存在任意db中来保会话期活
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏