Hallo,
wie hast du den Client denn installiert?
Dir fehlt anscheinend die "Qt WebEngine", was ein Plugin sein sollte. Dieses verursacht den Absturz.
Hallo,
wie hast du den Client denn installiert?
Dir fehlt anscheinend die "Qt WebEngine", was ein Plugin sein sollte. Dieses verursacht den Absturz.
Hallo,
welchen Router hast du denn? Meistens gibt es eine Einstellung, wo man definieren kann, ob man lieber mehr Performance oder Stabilität haben möchte. Spiele mit diesen Einstellungen einfach mal rum und prüfe, ob es was verbessert.
In einer FRITZ!Box findest du dies normalerweise wie folgt:
Bei mir sieht das z.B. so aus:
Die Priorisierungen (QoS) können ebenfalls eine Rolle spielen. Ich persönlich stelle hier VoIP (= Internettelefonie) immer an Erster Stelle.
In einer FRITZ!Box findest du dies normalerweise wie folgt:
Hallo,
das ist kein Problem vom TS3 Framework. Das ist ein Problem von deinem Webseiten Code.
Eine typsiche 0815-Webseite, die auf schlichten HTML, CSS und PHP basiert, führt den PHP-Code nur einmal serverseitig aus, sobald dieser angefragt wird. Wie in deinem Fall: Wenn die Seite besucht wird. Ändern sich während des Besuchs der Seite ein paar Werte, muss die Seite neu geladen werden, damit der PHP-Code neu ausgeführt wird.
Um die aktuellen Werte zu erhalten, ohne die Seite dauernd neuladen zu müssen, musst etwas wie AngularJS oder VueJS verwenden.
TCP 8765
UDP 8766
Welche Ports sollen das denn sein? Noch nie gesehen oder gehört.
Ja, wie @monster010 bereits geschrieben hat: Das Problem tritt normalerweise auf, wenn einer Servergruppe beispielsweise ein Icon zugeordnet ist, was es allerdings nicht mehr auf dem Server gibt. Die Zuordnung zwischen Icon und Servergruppe besteht weiterhin. Fordert der Client aber das Icon an, meldet ihm der Server zurück, dass es das Icon nicht mehr gibt.
Die Lösung des Problems ist dementsprechend wie folgt: Icon neu hochladen und in der jeweiligen Servergruppe neu setzen (da es eine andere, neue ID erhalten wird).
Also die Lags können etwas mit den verwendeten Sprach-Codecs und deiner Internetverbindung zu tun haben.
Hast du sie schon mal deinstalliert und neu installiert? Hat sich da was verbessert / geändert? Falls nicht, muss man mal den App Entwickler kontaktieren und um Hilfe beten.
Extrem teuer? Es gibt einen Anbieter, der verlangt für 10 Slots 10 € im Monat und da hast du kaum Rechte. Das ist extrem teuer.
@Dyroxplays sagte zu den Preisen bereits etwas:
Ich kann dir soviel sagen, dass der günstigste 0,11€/Slot seien, kann, da sonst das Unternehmen keinen Profit macht. Weil diese kaufen bei TS eine Lizenz, welche max. 0,10€/Slot kostet.
0,15-0,22€/Slot ist schon okay, aber es kommt halt auch drauf an, was diese bieten. Wie zB Sebbo sagt: Einige wollen extra Geld für einen individuellen Banner, DDoS-Protection etc.
Du hast bei deinem Anbieter aktuell 0,14 € pro Slot, somit macht dieser Anbieter 0,03 € Gewinn pro Slot. Wovon er aber auch noch andere Kosten (Server, DDoS Protection, Mitarbeiter,...) abziehen muss. Da benötigt man sehr viele Kunden, um alles bezahlen zu können.
Es scheint vielleicht, dass wir teuer sind, aber wenn du uns mit anderen Anbietern vergleichst, wirst du feststellen, dass wir Rechte / Services im Preis inkludiert haben, die andere für zusätzliche Kosten anbieten. Beispielsweise kompetenter und schneller Support, Traffic / Speicherplatz, Sprachverschlüsselung, Banner ändern, Codecs und TSDNS.
Wir sind übrigens ein reiner Prepaid Anbieter. Bei uns kannst du heute Geld aufladen, einen TS3 Server mieten und 13 Tage später z.B. sagen, dass du ihn nicht mehr brauchst. Dann stoppst du ihn entweder einfach nur, um ihn zu einem späteren Zeitpunkt wieder 1:1 so wieder nutzen zu können oder du löschst ihn. In beiden Fällen wird jedoch kein Geld mehr abgebucht. Somit gibt es bei uns keine solche Bindung wie "Buche das Produkt für 3 Monate zum Preis von X.".
Hallo,
gratis ist immer schwierig.
Wir von 4G-Server bieten aber günstige TS3 Server an. Bei uns hast du im Preis alles drin - es gibt keine Einschränkungen oder Limitierungen. Bei vielen Hostern musst du z.B. dafür zahlen, dass du deren Werbebanner entfernen kannst/darf oder du musst für Speicherplatz zahlen...
Schau einfach mal auf unserer Webseite vorbei: Prepaid TeamSpeak 3 Server günstig mieten
Hallo,
welche Version der App verwendest du denn?
iOS oder Android? Ist iOS bzw. Android auf dem aktuellsten Stand?
Hallo,
sichere bitte die nachfolgende Datei einmal und lösche sie dann aus dem Verzeichnis: C:\Users\Floei\AppData\Roaming\TS3Client\settings.db
Wenn das das Problem behebt, ist deine settings.db kaputt gewesen.
Hallo,
wie in der facebook Gruppe, gilt hier das selbe:
ZitatUm dir helfen zu können, müsstest du vielleicht noch ein paar Eckdaten liefern: Mittels welcher Software / Lösung wird das auf deinen TS dort reingedoktort? Hast du es selber programmiert oder ist es eine bekannte Lösung?
Ich vermute aufgrund deiner Aussage jedoch, dass es ein einfaches Rechte-Problem ist. Welches genau, kann man erst sagen, wenn wir mehr Infos zur Lösung haben.
Wenn ich die neue Logitech Software installiere, werden dann meine Makros usw. von der alten Konfiguration übernommen?
Das kann ich dir leider nicht sagen, da ich kein Logitech bisher hatte. Ich gehe aber davon aus.
Normalerweise sollte da eine entsprechende Warnung stehen, wenn es alles zurücksetzen sollte.
Hallo,
hast du die aktuellsten Treiber von deinem Headset installiert? Einfach mal auf der Herstellerseite nachschauen, ob es einen neueren gibt. Der aktuellste ist vom 21. August: G35 Surround Sound Headset- Logitech Support
Hast du in den Windows Sound-Einstellungen auch eingestellt, dass nichts passieren soll, wenn eine andere Anwendung etwas macht?
@Data179: Eigentlich schon, ja. Ich habe bis heute noch keine Beta Version erhalten, obwohl es laut TeamSpeak für Mitte September geplant war.
Deine Skripte sehen in Ordnung und sauber aus.
Ich persönlich nutze dafür nur ein Skript, weil man sonst beim anderen meist was vergisst, zu konfigurieren, wenn man was ändert. So hat man ein Skript und führt alle Regeln für IPv4 und IPv6 aus.
#!/bin/bashiptables_commands=(iptables ip6tables)for iptables_command in ${iptables_commands[@]}; do ${iptables_command} -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP ... ${iptables_command} -A INPUT -p tcp --dport 25847 -j ACCEPT # SSHdone/etc/init.d/netfilter-persistent save
Und wenn man IPv4/-v6 spezifische Regeln hat, wie z.B. ICMP, dann kann man das so lösen:
Sorry, ich war am Wochenende leider auf einer Feierlichkeit, daher konnte ich die letzten Tag nichts schreiben.
Es haben einige Feedback zu deinem "Projekt" gegeben. Siehe auch oben, den Verlauf.
Leider ist der Aufwand für dein Projekt viel höher als der Nutzen, daher scheint hier keiner Interesse daran zu haben, etwas entsprechendes zu programmieren. Die komplette Lösung, wie wo was zu machen wäre, habe ich bereits HIER verfasst. Ausführlicher geht es nicht, sonst würde es den Rahmen sprengen und zu spezifisch werden. Meine Lösung könnte man auch als "Anleitung" ansehen. Jetzt musst du nur noch jemanden finden, der eine Programmiersprache beherrscht, mit der es umsetzbar ist oder du lernst es dir selbst an. Programmieren ist aber leider kein 1x1 oder das Alphabet. Man kann hier vieles falsch machen, wenn man es nicht versteht. Das erkennt man am Ende an unsauberen Code, den keiner versteht, langsamer Code, der einfach nur ineffizient ist oder angreifbarer Code, weil jemand einfach nur eine "schnelle funktionierende" Lösung haben wollte.
Beachte bitte auch, dass die Software Lösung in Zukunft unter Umständen auch gewartet werden muss. Windows bringt z.B. Updates raus, wodurch sich eine API-Schnittstelle ändert und dann funktioniert dadurch deine App nicht mehr. Oder Windows ändert die Richtlinien, wie der Quellcode von Apps auszusehen hat - dann muss die App u.U. auch angepasst werden. Irgendwer muss die App später also auch weiterentwickeln bzw. warten können. Das ist auch der Grund, warum so viele der Meinung sind, dass es sich nicht lohnt.
Eine komplette Anleitung, wie du was im Code zu schreiben hast, wird dir keiner geben, denn dann würde man dir quasi direkt die Lösung programmieren.
@SquareRoot hat dir wohl angeboten, das für mehrere Plattformen (Serveranwendung, Windows 10 App, Windows Phone App, Android App) zu entwickeln, wenn du ihm seine Dienstleistung als Entwickler vergütest. Normalerweise kostet dich ein Entwickler aus Deutschland um die 50 - 150 € pro Stunde. 10 - 20 € zahlst du normalerweise nur an Entwickler im Ausland (z.B. Indien, Asien und Co..).
Du musst wissen, wie viel dir die Lösung Wert ist. Je nachdem, bezahlst du dann einen Entwickler, wenn es niemand kostenlos anbietet oder du erlernst dir Programmieren und baust es dir dann selbst. So oder so kostet beides Zeit und wie du bestimmt weist, ist Zeit gleich Geld.
Während beim Framework die Fehler anständig über ne Exception geworfen werden, werden die bei der ts3admin.class nur in ein Array geschrieben
Die ts3admin.class kann auch Fehlermeldungen ausgeben:
@Tbas: Diese Information war sehr hilfreich. Danke!
Ich habe das Thema daher umbenannt und entsprechend verschoben. Ich habe es auch mal auf facebook gepostet, damit jemand darauf aufmerksam wird.
Hallo,
nachdem du dich verbunden hast, musst du dich einloggen, also authentifizieren, sonst wirst du keine Informationen vom Server erhalten.
Dir fehlt also zwischen der Zeile 6 und 7 der login():
<?php$ts3_user='serveradmin'$ts3_pass='passwort'...if($tsAdmin->getElement('success', $tsAdmin->connect())){$tsAdmin->login($ts3_user, $ts3_pass);$tsAdmin->selectServer($ts3_port);...
Hier ein vollständiges Beispiel:
<?php
/**
* clientlist.php
*
* Is a small script to demonstrate how to get a clientlist via ts3admin.class
*
* by par0noid solutions - ts3admin.info
*
*/
/*-------SETTINGS-------*/
$ts3_ip = '127.0.0.1';
$ts3_queryport = 10011;
$ts3_user = 'serveradmin';
$ts3_pass = 'password';
$ts3_port = 9987;
/*----------------------*/
#Include ts3admin.class.php
require("../lib/ts3admin.class.php");
#build a new ts3admin object
$tsAdmin = new ts3admin($ts3_ip, $ts3_queryport);
if($tsAdmin->getElement('success', $tsAdmin->connect())) {
#login as serveradmin
$tsAdmin->login($ts3_user, $ts3_pass);
#select teamspeakserver
$tsAdmin->selectServer($ts3_port);
#get clientlist
$clients = $tsAdmin->clientList();
#print client count
echo count($clients['data']) . ' clients on selected server<br><br>';
#print clients to browser
foreach($clients['data'] as $client) {
echo $client['client_nickname'] . '<br>';
}
}else{
echo 'Connection could not be established.';
}
/**
* This code retuns all errors from the debugLog
*/
if(count($tsAdmin->getDebugLog()) > 0) {
foreach($tsAdmin->getDebugLog() as $logEntry) {
echo '<script>alert("'.$logEntry.'");</script>';
}
}
?>
Alles anzeigen
Ich habe dir gerade eine Lösung gepostet. Warum geht es dann nicht?
@Tbas: Höre bitte auf, die exakt selbe Frage mehrfach im Forum zu stellen. Einmal reicht. Danke!
Wie bereits von @master_d und @Data179 erwähnt wurde, kannst du die Offline Nachrichten nicht ohne weiteres einfach auf der Webseite anzeigen lassen und als "gelesen" markieren.
Offline Nachrichten sind dazu gemacht, dass diese privat sind und nur von den einzelnen Clients selbst gelesen werden können. Eine API bietet dir hier also keine Lösung für dein Ziel.
Die einzige Möglichkeit, die Nachrichten aller Clients auf einer Webseite zu erhalten, wäre es, diese direkt aus der Datenbank zu ziehen und entsprechend zu bearbeiten (z.B. als gelesen zu markieren).
Die Tabelle messages beinhaltet alle Offline Nachrichten (Beispiel stammt von einer SQLite DB. MySQL / MariaDB sieht höchst wahrscheinlich nicht (viel) anders aus):
CREATE TABLE messages ( message_id integer PRIMARY KEY AUTOINCREMENT NOT NULL, server_id integer unsigned, message_from_client_id integer unsigned, message_from_client_uid varchar(40), message_to_client_id integer unsigned, message_subject varchar(255), message_msg text, message_timestamp integer unsigned, message_flag_read integer default 0);
INSERT INTO "messages" VALUES(1,21,35,'A1vqlVfj55RN5UbESxZ7n+c4DUs=',42,'Bist du morgen online?','Hallo Max,bist du morgen online?Du müsstest mir in PUBG mal etwas zeigen... :)Viele Grüße,Sebbo',1506243933,0);
Getrennt durch Kommas, haben wir nun folgenden Inhalt in diesem einen Datensatz:
Je nachdem, mit was du deine Webseite gebaut hast oder bauen wirst, kannst du dann die entsprechenden Informationen mittels SQL-Befehlen verwerten. Ich zeige einfach mal kurz ein paar Beispiele anhand von simplen SQL-Befehlen:
Alle Nachrichten auslesen
Alle Nachrichten von dem virtuellen Server mit der ID 21 auslesen:
Alle Nachrichten von dem virtuellen Server mit der ID 21 für den Empfänger mit der Client ID 42 auslesen:
Je nachdem, welche Daten du alles brauchst, kannst du den Stern (*) in der SQL-Abfrage auch gegen die entsprechenden Datenbankfelder tauschen. Beispiel:
SELECT message_id,message_from_client_uid,message_subject,message_msg,message_timestamp,message_flag_read FROM messages WHERE server_id="21" AND message_to_client_id="42";
So, nachdem man die Informationen, also Datensätze hat, zeigt man diese später entsprechend auf der Webseite an. Wie das geht, hängt wieder von deinem Webseiten-Code ab. Angenommen, du hast kein MVC, sondern einfach nur HTML und PHP-Code, dann sieht das z.B. so aus:
ACHTUNG: Nicht getesteter Pseudocode! Dient nur zur Hilfestellung.
<?php [...] $sql = new SQL(); OFFLINE_MESSAGES = $sql->query("SELECT * FROM messages WHERE server_id='21' AND message_to_client_id='42'"); foreach($OFFLINE_MESSAGES as $OFFLINE_MESSAGE) { echo "Absender: " . $OFFLINE_MESSAGE['message_from_client_uid'] . "\n"; echo "Erhalten am: " . date("d.m.Y H:i", $OFFLINE_MESSAGE['message_timestamp']) . "\n"; echo "Status: "; if($OFFLINE_MESSAGE['message_flag_read'] == 1) { echo "Gelesen\n"; } else { echo "Ungelesen\n"; } echo "Betreff: " . $OFFLINE_MESSAGE['message_subject'] . "\n"; echo "Nachricht: " . $OFFLINE_MESSAGE['message_msg'] . "\n"; }
So und angenommen jemand öffnet eine Nachricht und hat sie entsprechend gelesen, kann deine Webseite diese dann noch in der Datenbank als "gelesen" markieren:
Wer welche Nachrichten zu Gesicht bekommen darf oder soll, entscheidest du mit dem Code auf deiner Webseite. Wenn sich Benutzer auf deiner Webseite einloggen können, wäre es vermutlich sinnvoll, dass sie ihre Client Identität mit deren Profil auf deiner Webseite verknüpfen. Dann kannst du nämlich User-basiert die Nachrichten anzeigen lassen. Aufgrund von Datenschutz, würde ich nämlich NIE jedem alle Nachrichten anzeigen. Das könnte sehr schnell, sehr viel Ärger geben.