Compare commits

...

3 Commits

Author SHA1 Message Date
renovate-bot 0a0a1fc611 chore(deps): pin dependencies
renovate/stability-days Updates have not met minimum release age requirement
CI / Test (pull_request) Successful in 3m50s
2026-05-10 10:18:59 +00:00
t.behrendt d6d9c63b3d fix: disconnection issue by adding a persistent ping (#121)
CD / Test (push) Successful in 19s
CD / Create tag (push) Successful in 18s
CD / Build and push (amd64) (push) Successful in 34s
CD / Build and push (arm64) (push) Successful in 1m38s
CD / Create manifest (push) Successful in 8s
Fixes the frequent disconnection issue, by adding a ping.
The "version" call works without authentication and is lightweight. Passing the "true" flag, prevents delivery of cached results.
This keeps the socket always connected. Feature may be removed in the future if the upstream library has a proper fix for the issue.

Reviewed-on: #121
Co-authored-by: Timo Behrendt <t.behrendt@t00n.de>
Co-committed-by: Timo Behrendt <t.behrendt@t00n.de>
2026-05-09 14:38:52 +02:00
t.behrendt eb9b335789 chore: add compose local test setup (#120)
Reviewed-on: #120
Co-authored-by: Timo Behrendt <t.behrendt@t00n.de>
Co-committed-by: Timo Behrendt <t.behrendt@t00n.de>
2026-05-09 14:18:49 +02:00
4 changed files with 60 additions and 1 deletions
+6
View File
@@ -0,0 +1,6 @@
*
!package.json
!bun.lockb
!src/
!tsconfig.json
+3
View File
@@ -130,3 +130,6 @@ dist
.yarn/install-state.gz
.pnp.*
# Local docker test setup
gotify_data/
ts3_data/
+47
View File
@@ -0,0 +1,47 @@
services:
ts3gotify:
build:
context: .
dockerfile: Dockerfile
environment:
LOG_LEVEL: debug
TS3_HOST: ts3
TS3_QUERY_PORT: 10011
TS3_SERVER_PORT: 9987
TS3_USERNAME: serveradmin
TS3_PASSWORD: Qx7uUh4i
TS3_NICKNAME: ts3gotify
GOTIFY_URL: http://gotify:80
GOTIFY_TOKEN: ApvIy.aFpN3.QlQ
GOTIFY_TITLE: ts3gotify
MODE: '["connect", "disconnect", "moved", "message"]'
gotify:
image: ghcr.io/gotify/server:latest@sha256:a3af47067ce6aad76aadf5ba32d6ddfecd1ae576a961359f039fd1831e8b7652
ports:
- 8080:80
environment:
TZ: "Europe/Amsterdam"
GOTIFY_DEFAULTUSER_PASS: "admin"
volumes:
- "./gotify_data:/app/data"
ts3:
image: docker.io/library/teamspeak:latest@sha256:4d3fa1c0db9a5a4ac69a2d07d6f0478539e464b15e7186c243a9f194bc1141fa
ports:
- name: voice
target: 9987
published: 9987
protocol: udp
- name: query
target: 10011
published: 10011
protocol: tcp
- name: filetransfer
target: 30033
published: 30033
protocol: tcp
environment:
TS3SERVER_LICENSE: accept
volumes:
- "./ts3_data:/var/ts3server/"
+4 -1
View File
@@ -43,7 +43,8 @@ export function ts3gotifyFactory(
ts3Client: TeamSpeak,
gotifyClient: Gotify,
gotifyConfig: GotifyConfig,
logger: Logger
logger: Logger,
pingInterval = 2_500
) {
let reconnectInProgress = false;
@@ -108,6 +109,8 @@ export function ts3gotifyFactory(
}
}
setInterval(() => ts3Client.version(true), pingInterval);
ts3Client.on("close", async () => {
await reconnectWithBackoff();
});