3

我使用 TS 框架通过 PHP 中的 Teamspeak Query 读取一些数据。但是文档很糟糕!

要显示来自所有客户端的所有 IP,我使用以下代码:

foreach($ts3_VirtualServer->clientList() as $client)
{
    // skip query clients
    if($client["client_type"]) continue;

    $clientInfo = $client->getInfo();
    echo $clientInfo['connection_client_ip'] . "<br>";
} 

(这不是完整的代码)

文档中说明getInfo()返回内容的部分在哪里?

文档链接

4

1 回答 1

4

它不在文档中,因为它是对所有节点对象的抽象/概括。

TeamSpeak3_Node_Abstract::getInfo()可以看出:

if ($extend) {
  $this->fetchNodeInfo();
}

if ($convert) {
  $info = $this->nodeInfo;

  foreach ($info as $key => $val) {
    $key = TeamSpeak3_Helper_String::factory($key);
    //...
  }

  return $info;
}

return $this->nodeInfo;

返回的数据(格式化或直接)是TeamSpeak3_Node_Abstract::$nodeInfo.

在 GitHub 存储库中搜索nodeInfo =显示了几个(子)节点是如何设置其继承nodeInfo属性的。

例如,我们有TeamSpeak3_Node_Host::fetchNodeInfo(),它使用 TeamSpeak3 服务器查询命令返回的属性hostinfoinstanceinfo

protected function fetchNodeInfo() {
  $info1          = $this->request("hostinfo")->toList();
  $info2          = $this->request("instanceinfo")->toList();
  $this->nodeInfo = array_merge($this->nodeInfo, $info1, $info2);
}

此外,例如,TeamSpeak3_Node_Server::fetchNodeInfo()使用serverinfo命令返回的属性:

protected function fetchNodeInfo() {
  $this->nodeInfo = array_merge($this->nodeInfo,
    $this->request("serverinfo")->toList());
}

您可以想象,几个 TeamSpeak3 对象都有一个相应的*info命令,该命令返回该对象的属性。

您可以在 TeamSpeak3 服务器查询手册中查看这些命令的几个示例结果以及返回的属性。这里以serverinfo命令为例。

此外,在手册的最后,您可以找到几个对象属性列表。例如,虚拟服务器属性

于 2018-04-28T21:26:45.823 回答