信息取自原帖。鸣谢 Funkynicco
你好,我决定发布 ServerManager 以及在使用和托管 flyff 期间为官方服务器制作的源代码。
简要信息:
简而言之,它会控制服务器并在服务器崩溃时按适当的顺序重新启动服务器。
它有一个远程命令接口,该接口最近是由于在本地子网上进行测试的目的而添加的(因此,它不提供在服务器上公开可用的安全性,它使用基本的用户名/密码验证和未加密的数据包)。
它还为每台服务器提供了进程间通信系统,使 ServerManager 能够完全控制它们。例如,您可以在 ServerManager 运行时启用或禁用 AccountServer 上的服务器和通道。它还允许您在每个 flyff 服务器中添加自定义命令,然后从 ServerManager(或经过一些修改的服务器管理器的远程客户端)执行它们。
每个 flyff 服务器都必须连接到 ServerManager 并进行身份验证,它们在启动时使用启动参数中的自定义参数执行此操作。
除 WorldServer 外,所有服务器在启动时都会隐藏,以保持桌面整洁。WorldServer 不被隐藏的原因是我将它设为控制台应用程序,而不是实际表单。您可以从 ServerManager 显示和隐藏每个单独的服务器。
ServerManager 将显示状态、内存使用情况(峰值)和运行时间。
已知问题或错误:
目前我只知道两个问题。
- 内存使用情况图表并不完全正确。创建后我还没有研究过它。
- 服务器选择列表框偶尔会闪烁,尤其是当您将鼠标移到其上时。可以通过正确使用双缓冲渲染来解决这个问题。
技术说明
ServerManager和RemoteManager的源代码都是使用C#制作的。
为了使它们能够与 ServerManager 协同工作和通信,每个服务器都必须有一个实现,我将仅提供有关如何实现该实现的简短指南。
问题
如果您有任何相关问题,请发表回复,我会在有时间的时候定期阅读并尽力回答。
下载
下载包含ServerManager、RemoteManager的源代码以及每个flyff服务器的实现部分。
下载内容还包含如何将其实现到每个单独的服务器中的指南,因为在这里输入它会太长。
下载前请阅读
我们已经进行了最后一刻的修复,以防止在 RemoteManagement 被禁用时 ServerManager 在启动时崩溃。
它偶尔仍在轮询远程管理代码,该代码正在轮询套接字(为空)。
打开
RemoteManagement.cs并找到函数
Update()。
在最开始添加以下内容。
Code:
if (!Configuration.EnableRemoteManagement)
返回;
祝你编码愉快!
下载 :
[隐藏内容]