4.2.10
最后更新于:2022-04-02 06:17:08
# 4.2.10
[TOC]
`swoole_server->getClientInfo`函数用来获取连接的信息,别名是`swoole_server->connection_info`
## 函数原型
~~~
bool|array swoole_server->getClientInfo(int $fd, int $extraData, bool $ignoreError = false)
~~~
## 参数
## 返回值
* 如果传入的`$fd`存在,将会返回一个数组
* 连接不存在或已关闭,返回`false`
* 第`3`个参数表示是否忽略错误,如果设置为`true`,即使连接关闭也会返回连接的信息
> * `connect_time`,`last_time`在`1.6.10`或更高版本可用
> * 当`dispatch_mode=1/3`时,考虑到这种数据包分发策略用于无状态服务,当连接断开后相关信息会直接从内存中删除,所以`swoole_server->getClientInfo`是获取不到相关连接信息的。
~~~
$fdinfo = $serv->connection_info($fd);
var_dump($fdinfo);
array(5) {
["reactor_id"]=>
int(3)
["server_fd"]=>
int(14)
["server_port"]=>
int(9501)
["remote_port"]=>
int(19889)
["remote_ip"]=>
string(9) "127.0.0.1"
["connect_time"]=>
int(1390212495)
["last_time"]=>
int(1390212760)
}
$udp_client = $serv->connection_info($fd, $from_id);
var_dump($udp_client);
~~~
* **reactor\_id**来自哪个`Reactor`线程
* **server\_fd**来自哪个监听端口`socket`,这里不是客户端连接的`fd`
* **server\_port**来自哪个监听端口
* **remote\_port**客户端连接的端口
* **remote\_ip**客户端连接的`IP`地址
* **connect\_time**客户端连接到`Server`的时间,单位秒,由`master`进程设置
* **last\_time**最后一次收到数据的时间,单位秒,由`master`进程设置
* **close\_errno**连接关闭的错误码,如果连接异常关闭,close\_errno的值是非零,可以参考[Linux错误信息列表](https://wiki.swoole.com/wiki/page/172.html)
* **websocket\_status**\[可选项\]`WebSocket`连接状态,当服务器是`Swoole\WebSocket\Server`时会额外增加此项信息
* **uid**\[可选项\] 使用`bind`绑定了用户`ID`时会额外增加此项信息
* **ssl\_client\_cert**\[可选项\] 使用`SSL`隧道加密,并且客户端设置了证书时会额外添加此项信息
';