TeamSpeak:查询已连接客户端的数量

时间:2014-03-29 23:00:52

标签: php

我目前正在使用TeamSpeak的ServerQuery功能在我的网站上通过PHP显示所有频道和连接的用户。现在它看起来像这样:(为粗略的用户名/频道标题道歉)

它可以显示频道和用户名。但是,我不希望它这样做。

我不希望显示已连接的所有频道和用户名,而是希望它只是获取当前连接的用户数量以及可以连接并显示它们的最大用户数量,如上所示。 (以及服务器状态,即在线或离线。)

This是我用来通过PHP连接到TeamSpeak服务器的API。

1 个答案:

答案 0 :(得分:3)

我自己发现了一个解决方案!

<强>框架

TeamSpeak PHP Framework

我们只需要这种情况下的libraries文件夹,所以请随意删除文档和图像文件夹。

-

PHP (感谢SilentStorm

<?php

date_default_timezone_set("Europe/London");
require_once("libraries/TeamSpeak3/TeamSpeak3.php");
TeamSpeak3::init();

header('Content-Type: text/html; charset=utf8');

$status = "offline";
$count = 0;
$max = 0;

try {
    $ts3 = TeamSpeak3::factory("serverquery://<USER>:<PASSWORD>@<SERVER IP>:<QUERY PORT>/?server_port=<SERVER PORT>&use_offline_as_virtual=1&no_query_clients=1");
    $status = $ts3->getProperty("virtualserver_status");
    $count = $ts3->getProperty("virtualserver_clientsonline") - $ts3->getProperty("virtualserver_queryclientsonline");
    $max = $ts3->getProperty("virtualserver_maxclients");
}
catch (Exception $e) {
    echo '<div style="background-color:red; color:white; display:block; font-weight:bold;">QueryError: ' . $e->getCode() . ' ' . $e->getMessage() . '</div>';
}
echo '<span class="ts3status">TS3 Server Status: ' . $status . '</span><br/><span class="ts3_clientcount">Clients online: ' . $count . '/' . $max . '</span>';

?>

<强>自定义

- ServerQuery用户名(可以在TeamSpeak,Tools - &gt; ServerQuery Login

中找到)

- ServerQuery密码(可在TeamSpeak中找到,工具 - &gt; ServerQuery登录

- 服务器的IP地址

- ServerQuery端口(默认 - 10011)

- 服务器的端口(默认 - 9987)

将文件正确保存在包含libraries文件夹的同一目录中。要在页面上显示它,请输入代码:

<?php
    include('path/to/file/filename.php');
?>

然后,这将在页面上显示TeamSpeak服务器信息!希望我能提供帮助。