Teamspeak 框架文档说明

Teamspeak Framework Documentation Explanation

我正在使用 TS 框架通过 PHP 中的 Teamspeak 查询读取一些数据。 但是文档太糟糕了!

要显示来自所有客户端的所有 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() returns?

Documentation Link

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

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.

Searching GitHub nodeInfo = 的 repo 显示了几个(子)节点如何设置其继承 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 命令,该命令 returns 该对象的属性。

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

此外,在手册末尾,您可以找到几个对象属性列表。 例如,virtual server properties.