Class WsServer
java.lang.Object
com.github.theword.queqiao.tool.websocket.WsServer
Netty WebSocket 服务端。
支持两类流量:
1. WebSocket:按既有协议鉴权并处理消息
2. 非 WebSocket:可按配置转发到本地 MC 主端口
-
Constructor Summary
ConstructorsConstructorDescriptionWsServer(InetSocketAddress address, org.slf4j.Logger logger, com.google.gson.Gson gson, String serverName, String accessToken, boolean enabled) WsServer(InetSocketAddress address, org.slf4j.Logger logger, com.google.gson.Gson gson, String serverName, String accessToken, boolean enabled, boolean forward) -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyRuntimeConfig(String serverName, String accessToken, boolean enabled, boolean forward) 热更新运行时配置(不重启监听)。void广播文本消息到全部 WebSocket 客户端获取服务监听地址。获取当前活跃连接intgetPort()获取服务监听端口。booleanhasSameBinding(String host, int port) 判断当前实例的监听地址是否与目标地址一致。booleanisActive()当前服务端是否处于活动状态。voidstart()启动服务端void停止服务端并释放资源
-
Constructor Details
-
WsServer
public WsServer(InetSocketAddress address, org.slf4j.Logger logger, com.google.gson.Gson gson, String serverName, String accessToken, boolean enabled) -
WsServer
public WsServer(InetSocketAddress address, org.slf4j.Logger logger, com.google.gson.Gson gson, String serverName, String accessToken, boolean enabled, boolean forward)
-
-
Method Details
-
start
public void start()启动服务端 -
isActive
public boolean isActive()当前服务端是否处于活动状态。- Returns:
- true 表示服务端正在监听
-
hasSameBinding
判断当前实例的监听地址是否与目标地址一致。- Parameters:
host- 目标 hostport- 目标 port- Returns:
- true 表示可复用当前监听端口
-
applyRuntimeConfig
public void applyRuntimeConfig(String serverName, String accessToken, boolean enabled, boolean forward) 热更新运行时配置(不重启监听)。用于 reload 且监听地址不变场景,避免中断当前 TCP 转发连接。
- Parameters:
serverName- 服务器名accessToken- 访问令牌enabled- 工具启用状态forward- 非 WebSocket 流量转发开关
-
stop
停止服务端并释放资源- Throws:
InterruptedException
-
getAddress
获取服务监听地址。若服务已绑定,优先返回真实绑定地址。
-
getPort
public int getPort()获取服务监听端口。当配置端口为 0 时,返回系统分配的实际端口。
-
getConnections
获取当前活跃连接 -
broadcast
广播文本消息到全部 WebSocket 客户端
-