跳到主要内容
版本:4.0-rc

快捷事务命令行

定义

命名空间:
TouchSocket.HttpTouchSocket.Http.WebSockets
安装:
dotnet add package TouchSocket.Http

一、说明

快捷事务命令行,是用于WebSocket的快捷事务实现,让WS在Text文本中,用最简单的文字消息即可完成相关事务的执行。该功能通过继承WebSocketCommandLinePlugin基类实现,可以让开发者以最简单的方式定义和调用WebSocket事务方法。

二、使用

2.1 声明事务插件

新建类型,继承自WebSocketCommandLinePlugin基类。然后在里面声明需要执行的事务方法。

声明的事务方法必须满足以下要求:

  • 只能是实例方法
  • 必须是公开方法(public)
  • 方法名必须以Command结尾
  • 支持基础类型参数和Json字符串参数
  • 参数之间用空格隔开
🔄 正在加载代码...
提示

在事务方法中,如果第一个参数的类型实现了IHttpSessionIWebSocket接口,框架会自动注入当前请求的客户端实例,从而可以获取客户端的IP地址、ID等信息。

2.2 注册使用

在服务端配置插件时,直接通过Add方法添加命令行插件即可。

🔄 正在加载代码...

2.3 客户端调用

客户端调用命令行事务方法时,需要按照特定的格式发送文本消息:

调用格式: 方法名 参数1 参数2 ...

  • 第一个参数是事务方法的方法名(不包含Command后缀)
  • 后续参数直接写,多个参数用空格隔开
  • 例如调用AddCommand方法:Add 10 20
🔄 正在加载代码...
提示

快捷事务命令行不仅可以添加在服务器端,客户端也可以添加使用。

提示

快捷事务参数支持Json字符串,但是需要注意的是,Json字符串内部不能包含空格,否则会被识别为多个参数。

三、参数类型支持

命令行插件支持以下几种参数类型:

3.1 基础类型参数

支持所有C#基础类型,包括:intlongdoublestringbool等。

3.2 Json字符串参数

支持将Json字符串自动反序列化为对象参数。例如:

Sum {"A":10,"B":20}
注意

Json字符串内部不能包含空格,否则会被错误解析为多个参数。

3.3 客户端注入参数

如果方法的第一个参数类型实现了IHttpSessionIWebSocket接口,框架会自动注入当前请求的客户端实例,无需在调用时传递。

四、异常处理

默认情况下,当事务方法执行发生异常时,插件会将异常信息返回给客户端。可以通过NoReturnException()方法关闭异常返回:

a.Add<MyWSCommandLinePlugin>().NoReturnException();

五、示例代码