Class ReconnectCommand<NCS>

java.lang.Object
io.github.theword.queqiao.core.command.CommandNode<NCS>
io.github.theword.queqiao.core.command.builtin.ReconnectCommand<NCS>

public class ReconnectCommand<NCS> extends CommandNode<NCS>
  • Constructor Details

    • ReconnectCommand

      public ReconnectCommand(org.slf4j.Logger logger, WebsocketManager websocketManager)
  • Method Details

    • getName

      public String getName()
      获取命令名称
      Specified by:
      getName in class CommandNode<NCS>
      Returns:
      reconnect
    • getDescription

      public String getDescription()
      获取命令描述
      Specified by:
      getDescription in class CommandNode<NCS>
      Returns:
      重新连接 Websocket Clients
    • getUsage

      public String getUsage()
      获取命令用法(添加参数说明)
      Overrides:
      getUsage in class CommandNode<NCS>
      Returns:
      使用说明
    • onExecute

      protected void onExecute(CommandExecutionContext<NCS> context, List<String> args)
      重连 WebSocket 客户端 reconnect 命令调用
      Specified by:
      onExecute in class CommandNode<NCS>
      Parameters:
      context - 命令执行上下文
      args - 命令参数
    • reconnect

      public void reconnect(CommandExecutionContext<NCS> context, boolean all)
      重连 WebSocket 客户端

      all 的语义:

      • false —— 只重连未打开的客户端(/queqiao client reconnect)
      • true —— 强制重连全部客户端,含当前健康的连接 (/queqiao client reconnect all),会主动断开再重建

      注意:本方法只是把重连任务投递到调度器,并不保证连接成功, 因此结束提示为"已安排重连"而非"已重新连接";真正的结果由 WsClient 在 onOpen / onClose 中记录到日志。

      API 变更:本方法此前是 public static,依赖全局上下文获取 命令返回消息实现与 Manager。改为实例方法后依赖由构造器注入, 平台侧不能再以 ReconnectCommand.reconnect(...) 静态调用。

      Parameters:
      context - 命令执行上下文
      all - 是否强制重连全部客户端