# Server模块
[![](https://img.shields.io/badge/simple--robot--module-debugger-green)](https://github.com/ForteScarlet/simple-robot-core) [![](https://img.shields.io/maven-central/v/love.forte.simple-robot-module/simple-robot-module-debugger-server)](https://search.maven.org/artifact/love.forte.simple-robot-module/simple-robot-module-debugger-server)
依赖于Common模块,在程序启动后启动一个socket服务端来支持远程debug。其对应的客户端为后续会介绍到的`client`模块。
>[info] server 模块一般用于使用在对那些难以本地debug的组件使用,例如JCQ组件。
<br>
## **简介**
server会在程序中开启一个socket服务,并监听来自于client的连接。
当client连接后,便可以通过client向server提交事件并触发server端的监听事件,以实现远程通过client对server进行调试。
当配置中的`simbot.module.debugger.listen=true`的时候,server中所触发的其他非debug监听事件的时候,会将此事件提交给client,实现通过client监听server端的事件。
但是需要注意的是,不论事件提交为`client -> server`还是`server -> client`,他们所接收到的`MsgGet`实例永远是`debugger-common`模块中提供的debugger特供的实例,不属于任何组件。
一个server可连接多个client。
<br>
## **使用**
### **① 构建项目**
以maven为例:
(版本参考maven仓库或者此文档上方的版本号图标)
```xml
<!-- https://search.maven.org/artifact/love.forte.simple-robot-module/simple-robot-module-debugger-server-->
<dependency>
<groupId>love.forte.simple-robot-module</groupId>
<artifactId>simple-robot-module-debugger-server</artifactId>
<version>${project.version}</version>
</dependency>
```
<br>
### **② 配置文件**
```properties
# suppress inspection "UnusedProperty" for whole file
# debugger server
# debug server socket服务监听端口, 默认9998
simbot.module.debugger.port=9998
# debug server socket服务记录所有客户端的group name。一般应该不用管,因为我忘了这个是干嘛的了
# simbot.module.debugger.groupName=debugger_server
# 如果为true,则会注册一个消息拦截器,并上报一切非DebugMsg的监听消息,默认为false
simbot.module.debugger.listen=false
```
<br>
## **③ 使用**
一般来讲,当运行环境中存在server模组的时候,server将会自动被启动,无需额外启动代码。
但是当你需要一些额外的操作的时候,也是可以的,例如主动向client提交一些事件。
```java
// 如果不用接口启动,则记得标注注解。默认的配置文件的文件名为:simple-robot-conf.properties
@SimpleRobotApplication
public class DebugServerRunApplication {
public static void main(String[] args) {
DebugContext context = new DebugApplication().run(DebugServerRunApplication.class, args);
// debug控制器, 此处是server controller
DebugController controller = context.getController();
// 如果要主动通过debug server向client提交事件:
// send(...), 这个是发送指定类型的消息
// controller.send(MsgGetTypes.privateMsg, msg -> {
// System.out.println("随机的msg为:" + msg);
// // 手动设置bot的账号为一个固定值
// msg.setThisCode("1149159218");
// });
// 随机消息
// controller.sendRandom();
// 随机消息
// controller.sendRandom(msg -> {
// System.out.println("随机的msg为:" + msg);
// // 手动设置bot的账号为一个固定值
// msg.setThisCode("1149159218");
// });
// 如果 server被关闭了,则会跳出循环,执行下一句
while(controller.isActive()){ }
System.out.println("out - not active");
}
}
```
>[info] 正常情况下,server的socket服务不会自动关闭。
<br>
- 前言
- 简单介绍
- 我该如何阅读文档
- 视频教程
- 安装与使用
- 开源协议
- 免责&捐助
- 注意事项
- 版本命名规则简介
- 主要功能版本历史
- 功能指引
- 通用API与功能
- 国际化语言
- 异常
- 消息监听
- @Listen
- @OnListen模板
- @Filter
- 消息参数截取
- @Spare
- @Constr
- @Ignore
- @ListenBreak
- @ListenBreakPlugin
- @ListenBody
- 监听响应
- 成功判定与返回值
- 监听上下文
- 动态参数
- 监听消息API
- 异步监听 @Async
- 限流监听 @Limit
- 自定义Http送信器
- 枚举与类型
- 送信器
- SENDER
- SETTER
- GETTER
- 返回值
- 其他位置
- 日志与日志拦截
- 异常处理
- 依赖注入
- 自定义依赖获取
- 批量依赖载入
- 注意事项
- 常量
- 定时任务
- 自定义过滤
- 拦截器
- 拦截器总定义
- 上下文对象总定义
- 监听消息拦截
- 送信器拦截
- 监听函数拦截
- CAT码
- CQ码
- CQCode
- CQ码工具类
- CQ扩展工具类
- AppendList拼接链
- 高级内容
- 阻断机制
- 截断机制
- 自定义枚举类型
- 枚举工厂
- byName注解
- 自定义注解
- 配置
- 文件配置
- 注解配置
- 参数配置
- 多配置
- 多账号
- 自定义账号管理器
- 小心!
- 核心版本与组件如何升级核心
- 核心版本迭代指南
- 核心
- 更新日志
- jar包与依赖
- 监听消息类结构图
- 快速启动
- 模组与扩展
- 模组开发
- 现有模组
- 通用模组-延时任务
- 通用模组-CQ码工具
- 转义器
- CQ码操作工具类
- CQ码模板-CodeTemplate
- CQ码载体-KQCode
- CQ码构建器
- MQ码工具类
- 通用模组-redis-bot管理器
- 通用模组-Debugger
- Debugger-common模块
- Debugger-server模块
- Debugger-client模块
- 通用模组-钉钉机器人
- 组件-Mirai(JVM)
- 快速开始(1.13+)
- springboot-starter
- 注意事项
- 配置
- 额外的内容
- 快速回复
- 额外监听
- CQ码解析
- 组件-酷Q(QQ)-CQ HTTP API(基本失效)
- 快速开始(推荐)
- 快速开始(1.7.x以下,不推荐)
- 快速开始(Springboot启动器)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 额外的内容
- 自定义额外监听
- CQ送信器
- 元事件
- 监听消息类结构图
- 组件-酷Q(QQ)-JCQ(失效)
- 快速开始
- 更新日志
- 额外的内容
- JCQ日志
- 配置
- 注意事项
- 监听消息类结构图
- 组件-酷Q(QQ)-HTTP TO CQ(失效)
- 快速开始(核心1.7.x及以下)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 监听消息类结构图
- 组件-酷Q(QQ)-LEMOC (失效)
- 快速开始(核心1.7.x及以下)
- 配置
- 注意事项
- 更新日志
- 监听消息类结构图
- Springboot快速启动器
- 常见问题汇总
- BUG反馈
- 更新计划总览