快捷事务命令行
定义
命名空间:
TouchSocket.HttpTouchSocket.Http.WebSockets安装:
dotnet add package TouchSocket.Http一、说明
快捷事务命令行,是用于WebSocket的快捷事务实现,让WS在Text文本中,用最简单的文字消息即可完成相关事务的执行。该功能通过继承WebSocketCommandLinePlugin基类实现,可以让开发者以最简单的方式定义和调用WebSocket事务方法。
二、使用
2.1 声明事务插件
新建类型,继承自WebSocketCommandLinePlugin基类。然后在里面声明需要执行的事务方法。
声明的事务方法必须满足以下要求:
- 只能是实例方法
- 必须是公开方法(public)
- 方法名必须以Command结尾
- 支持基础类型参数和Json字符串参数
- 参数之间用空格隔开
🔄 正在加载代码...
提示
在事务方法中,如果第一个参数的类型实现了IHttpSession或IWebSocket接口,框架会自动注入当前请求的客户端实例,从而可以获取客户端的IP地址、ID等信息。
2.2 注册使用
在服务端配置插件时,直接通过Add方法添加命令行插件即可。
🔄 正在加载代码...
2.3 客户端调用
客户端调用命令行事务方法时,需要按照特定的格式发送文本消息:
调用格式: 方法名 参数1 参数2 ...
- 第一个参数是事务方法的方法名(不包含
Command后缀) - 后续参数直接写,多个参数用空格隔开
- 例如调用
AddCommand方法:Add 10 20
🔄 正在加载代码...
提示
快捷事务命令行不仅可以添加在服务器端,客户端也可以添加使用。
提示
快捷事务参数支持Json字符串,但是需要注意的是,Json字符串内部不能包含空格,否则会被识别为多个参数。
三、参数类型支持
命令行插件支持以下几种参数类型:
3.1 基础类型参数
支持所有C#基础类型,包括:int、long、double、string、bool等。
3.2 Json字符串参数
支持将Json字符串自动反序列化为对象参数。例如:
Sum {"A":10,"B":20}
注意
Json字符串内部不能包含空格,否则会被错误解析为多个参数。
3.3 客户端注入参数
如果方法的第一个参数类型实现了IHttpSession或IWebSocket接口,框架会自动注入当前请求的客户端实例,无需在调用时传递。
四、异常处理
默认情况下,当事务方法执行发生异常时,插件会将异常信息返回给客户端。可以通过NoReturnException()方法关闭异常返回:
a.Add<MyWSCommandLinePlugin>().NoReturnException();