下面是官方的写法
$serv = new swoole_server("0.0.0.0", 9502);
//必须在onWorkerStart回调中创建redis/mysql连接
$serv->on('workerstart', function($serv, $id) {
$redis = new redis;
$redis->connect('127.0.0.1', 6379);
$serv->redis = $redis;
});
$serv->on('receive', function (swoole_server $serv, $fd, $from_id, $data) {
$value = $serv->redis->get("key");
$serv->send($fd, "Swoole: ".$value);
});
$serv->start();
对于多个客户端来说,访问$serv->redis
,指向的是同一个对象吧,怎么分离的呢?
我把代码写在一个类里面的,我不太清楚start事件和workstart事件以及第一次recive时创建的对象应该保存到哪里,直接
$a=1(当前上下文)
$this->a=1(类上)
$serv->a=1(服务对象上)
写法上有什么区别吗?如何根据不同的客户端隔离开的呢?比如客户端并发10W,我应该用数据库连接池,比如100个连接池,这些变量不知道挂载到哪里存起来,客户端是长连接,第一次会发送客户端的唯一标识mac,我得存起来,后面不发送了,我得从我自己的数据里面取出来,不太会写啊