Web 服务器

基本信息

属性 值
Servlet 容器 Jetty 9.4.26.v20200117(dependencies.gradle:35-64,9 个 shadowImplementation 构件,含 jetty-server/jetty-servlet/jetty-webapp/jetty-security/jetty-annotations 等)
服务器类 org.dynmap.DynmapCore 内部创建的 org.eclipse.jetty.server.Server(DynmapCore.java:886)
连接器 NetworkTrafficServerConnector(DynmapCore.java:889)
默认端口 8123(DynmapCore.java:878 configuration.getInteger("webserver-port", 8123);仓库 configuration.txt:333 同值)
根路径 /(DynmapCore.java:957 contextHandler.setContextPath("/"))
停止行为 setStopAtShutdown(true)(DynmapCore.java:897)

功能

mod 的核心产出:一个内嵌在服务端进程内的 HTTP 服务器,把已渲染的地图图块与实时玩家数据提供给浏览器。仓库 README.md 首段将其定义为 “a server side addon which adds a browser accessible shared map for your players”,并说明 “GWM is only available as a Forge mod at this time”。

Jetty 构件通过 shadowImplementation 打包并重定位进 mod jar(gradle.properties 的 usesShadowedDependencies = true、relocateShadowedDependencies = true、minimizeShadowedDependencies = true),因此运行时不需要外部 Jetty。

数值

数值名 值 来源
默认端口 8123 DynmapCore.java:878
空闲超时 5000 ms DynmapCore.java:890 setIdleTimeout(5000)
接受队列长度 50 DynmapCore.java:891 setAcceptQueueSize(50)
默认最大会话数 30 DynmapCore.java:882 configuration.getInteger("max-sessions", 30)
最大会话数下限 2 DynmapCore.java:883 if(maxconnections < 2) maxconnections = 2;
线程池最小线程 2 DynmapCore.java:885 new ExecutorThreadPool(maxconnections, 2, queue)
允许符号链接 false DynmapCore.java:900 configuration.getBoolean("allow-symlinks", false)

监听地址可配:DynmapCore.java:892-893 仅当 webhostname 不等于 0.0.0.0 时才调用 connector.setHost(webhostname),即 0.0.0.0 表示"不绑定具体地址"。

交互

触发 行为
服务启动 DynmapCore 初始化时创建 Server 并挂载 Handler 链(DynmapCore.java:886-961,webServer.setHandler(hlist) 见 :961)
JVM 关闭 setStopAtShutdown(true) 随 JVM 关闭而停服
外网访问 仓库 README.md 提示需自行在防火墙/路由器放行 8123

安全提示

仓库 README.md “Chat settings” 一节明确警告:默认端口 8123 上的 allowwebchat “is sometimes abused by bots etc to send spam”。这是仓库自述的部署注意事项,此处照录。

相关条目