Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

按需自动启动实例功能 #1089

Open
ColdeZhang opened this issue Dec 12, 2023 · 13 comments
Open

按需自动启动实例功能 #1089

ColdeZhang opened this issue Dec 12, 2023 · 13 comments
Labels
Feature Request Feature request

Comments

@ColdeZhang
Copy link

源自此项目的启发 Minecraft-Server-Sleep-Manager

允许在超过三十分钟没有玩家在线时自动关闭服务器进入休眠状态,当有玩家尝试链接(包括 ping 行为)自动启动服务器,以此节约服务器资源。
缺点:对较大的整合包服务器不是特别友好(因为启动慢)玩家无法快速加入需要等待较长的时间。

我把这个特性加入到了 MCSM 的功能中,不知道官方是否有意接受此功能的合并。

MCSM-UI
MCSM-Daemon
MCSManager

@ColdeZhang ColdeZhang added the Feature Request Feature request label Dec 12, 2023
@Bluemangoo
Copy link
Contributor

是否会导致在休眠后第一次尝试连接时直接掉线?

另外,如果要合并,你可以在GitHub fork并提pr。要使用你的自建git合并有点麻烦的(

@ColdeZhang
Copy link
Author

是否会导致在休眠后第一次尝试连接时直接掉线?

对 因为本质上休眠就是关闭了服务器,会在同端口启动一个socket监听连接请求。玩家在打开服务器列表的时候拉取服务器状态(ping行为)也会触发启动,对于原版服务器核心来说基本可以做到无感,但是对mod核心可能不是特别友好,大概率会出现第一次连接的时候会返回一个“服务器正在启动”的错误。

另外,如果要合并,你可以在GitHub fork并提pr。要使用你的自建git合并有点麻烦的(

是的 我的自建git不太方便合并到此仓库 如果对此功能感兴趣我会在Github拉取一个fork并提交pr ;)

@unitwk
Copy link
Member

unitwk commented Dec 12, 2023

很有意思的功能,但是MCSM的未来可能会是一个通用型的管理面板,也正在计划支持大部分 Steam 游戏,这种与 Minecraft 深度绑定的功能不是优先项(主要还是因为 MC 的服务端种类太多,各种配置文件深度绑定困难大),在以后如果有很多人感兴趣或者需要时再说吧。

@ColdeZhang
Copy link
Author

很有意思的功能,但是MCSM的未来可能会是一个通用型的管理面板,也正在计划支持大部分 Steam 游戏,这种与 Minecraft 深度绑定的功能不是优先项(主要还是因为 MC 的服务端种类太多,各种配置文件深度绑定困难大),在以后如果有很多人感兴趣或者需要时再说吧。

好嘞👌

@unitwk
Copy link
Member

unitwk commented Dec 12, 2023

另外,我还是希望你还是能将代码在 Github 上开源,这样如果哪一天我们确实需要这个功能,我也会再询问你有没有兴趣来提交PR。

@ColdeZhang
Copy link
Author

另外,我还是希望你还是能将代码在 Github 上开源,这样如果哪一天我们确实需要这个功能,我也会再询问你有没有兴趣来提交PR。

:) 好的 晚些时候我会在Github fork官方仓库并将我的更改镜像到fork上

@ColdeZhang
Copy link
Author

GitHub上关于此功能的镜像仓库地址如下:

https://github.com/DeerGiteaMirror/MCSM-UI
https://github.com/DeerGiteaMirror/MCSM-Daemon

@ColdeZhang
Copy link
Author

很有意思的功能,但是MCSM的未来可能会是一个通用型的管理面板,也正在计划支持大部分 Steam 游戏,这种与 Minecraft 深度绑定的功能不是优先项(主要还是因为 MC 的服务端种类太多,各种配置文件深度绑定困难大),在以后如果有很多人感兴趣或者需要时再说吧。

hello 我又来了

为了提高此功能的通用性以适合MCSM未来的开发计划,这两天我对此功能进行了一定的修改。监控实例的活跃逻辑(判断标准)由在线玩家数量修改为网络连接数,这样理论上可以支持所有以tcp协议提供服务的游戏。不过由于udp协议是无状态协议,因此此方案缺点是无法支持udp协议的游戏(如csgo、mcbe)。

不知道对于udp协议的游戏有没有什么其他办法?

DeerGiteaMirror/MCSM-Daemon@e6e6b69

@ColdeZhang ColdeZhang reopened this Dec 14, 2023
@Mr-Ao-Dragon
Copy link

UDP的话,看第一个报文的内容咯

@Bluemangoo
Copy link
Contributor

Bluemangoo commented Dec 21, 2023

直接转发逻辑,转到了且不在线就唤醒啊。转发,try-catch块里面写唤醒逻辑。这个看性能了,node的转发好像有点耗。

你转发服务器一直在监听当反代就好了。

@ColdeZhang
Copy link
Author

直接转发逻辑,转到了且不在线就唤醒啊。转发,try-catch块里面写唤醒逻辑。这个看性能了,node的转发好像有点耗。

你转发服务器一直在监听当反代就好了。

转发不太行,测了一下延迟比较高,一个玩家的时候大概就有个七十多毫秒。

@Bluemangoo
Copy link
Contributor

直接转发逻辑,转到了且不在线就唤醒啊。转发,try-catch块里面写唤醒逻辑。这个看性能了,node的转发好像有点耗。
你转发服务器一直在监听当反代就好了。

转发不太行,测了一下延迟比较高,一个玩家的时候大概就有个七十多毫秒。

是拿node转发导致的。不如写nginx插件去。

@Shapaper
Copy link

另外,我还是希望你还是能将代码在 Github 上开源,这样如果哪一天我们确实需要这个功能,我也会再询问你有没有兴趣来提交PR。

我认为这可以作为选择为javaMC服务器的独享功能,就和统计mc人数一样
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request Feature request
Projects
None yet
Development

No branches or pull requests

5 participants