ServerManager with RemoteManager

FlyFF Enthusiast
Decennium
Joined
Jul 14, 2010
Messages
721
Reaction score
6,257
Information taken from original Post. Credits to Funkynicco

Hi, I've decided to release the ServerManager along with source that made for the official servers during working with and hosting flyff.

Brief information:
In a nutshell, it controls and restarts servers in appropriate order in case they have crashed.
It has a remote command interface that was lately added due to testing purposes on a local subnet (as such, it does NOT provide security for being openly available on a server, it uses basic username/password authentication and unencrypted packets).
It also provides an inter-process communication system with each server, which allows ServerManager to have full control of them. You can for example enable or disable servers and channels on AccountServer from within ServerManager live as it runs. It also lets you add custom commands in each flyff server and then execute them from ServerManager (or Remote client for server manager with a few modifications).
Each flyff server has to connect to ServerManager and authenticate themself, they do this on startup with custom arguments in the startup parameters.
All servers but WorldServer are also hidden on startup to keep desktop clean. The reason why WorldServer is not hidden is because I had made it a console application instead of a actual form. You can show and hide each individual server as they run from ServerManager.
ServerManager will show status, memory usage with peak and run time.

Known issues or bugs:
There are only two issues that I know of at the moment.
  • The memory usage graph is not entirely correct. I have not looked into it after creating it.
  • The server selecting listbox is occasionally flickering, especially when you move mouse over them. This can be fixed by correctly utilizing double buffered rendering.
Technical notes
The source of ServerManager and RemoteManager are made using C#.
There is an implementation that has to go into each server in order for them to work and communicate with ServerManager, I will only provide a short guide on how to implement that.

Questions
If you have any related questions, post a reply as I will perodically read when I have time and try my best to answer.

Downloads
The download contains source code for ServerManager, RemoteManager and the implementation part for each flyff server.
The download also contains the guide on how to implement it into each individual server as it would be too long to type it here.

Read before downloading
A last minute fix has been made that will prevent ServerManager from crashing upon startup while RemoteManagement is disabled.
It was occasionally still polling the remote management code, which was polling the socket (which is null).
Open up RemoteManagement.cs and find function Update().
At the very beginning add the following.
Code:
if (!Configuration.EnableRemoteManagement)
    return;

Happy coding!

Download :

 
Last edited:
virus, avg detect generic.bdc0w06, i request delete before more people could be infected...

In a zip file? I don't think so. Will have a look and reupload if they are corrupted.
Besides, theres not a single binary in the zip, its simple text files and ico's.

There are false positives in virus scanners.

Edit: You must have a virus that infects it when you download it. I just tested on virustotal, and all passed.
 
Thank you for the release, It works perfectly.
working - ServerManager with RemoteManager - RaGEZONE Forums
 
If anyone wants something nice to add on this, this is a snippet I wrote up today for the server I work for.



It sends crash notifications, and takes in commands via SMS.
 
If anyone wants something nice to add on this, this is a snippet I wrote up today for the server I work for.



It sends crash notifications, and takes in commands via SMS.

Could also implement email notification using the
When a server crashes it sends the exception address to ServerManager.
ServerManager catches that exception address in void Service_ClientCrash(ServerType type, uint address)
That is in Main.cs on line 456 (or close to).
 
Back