Add server control (start/stop/restart, live logs, broadcast, kick) to webadmin
Docker SDK drives login/char/worldserver containers via docker.sock (mounted read-only into webadmin); live logs stream over SSE with nginx buffering disabled so lines arrive in real time. Broadcast/kick go through a new admin_queue DB table that the world server polls every ~2s in its existing WorldProcess tick loop, avoiding a second IPC channel to the game server.
This commit is contained in:
1 parent
3554c85f2f
commit
15e562cb04
11 files changed
+331
-2
No files matched your search
@@ -403,8 +403,16 @@ PVOID VisibilityProcess(PVOID TS)
|
||||
// World Process
|
||||
PVOID WorldProcess( PVOID TS )
|
||||
{
|
||||
int adminQueueTicks = 0;
|
||||
while( GServer->ServerOnline )
|
||||
{
|
||||
// Poll roughly every 2 seconds regardless of WorldDelay, instead of
|
||||
// hitting the DB on every tick.
|
||||
if( ++adminQueueTicks * GServer->Config.WorldDelay >= 2000 )
|
||||
{
|
||||
adminQueueTicks = 0;
|
||||
GServer->PollAdminQueue( );
|
||||
}
|
||||
pthread_mutex_lock( &GServer->MapMutex );
|
||||
for(UINT i=0;i<GServer->MapList.Map.size();i++)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user