---
id: wscommandlineplugin
title: WSCommandLinePlugin
---


## 命令行执行插件客户端、服务器均支持

**WSCommandLinePlugin**命令行执行插件，是用于**WebSocket**的快捷事务实现，让WS在**Text**文本中，用最简单的文字消息即可完成相关事务的执行。该类是抽象类，必须通过继承，在继承类中，声明的具的**公共的**且名称以**Command**结尾的方法，均可被快捷执行。

例如：下列插件，即可被普通WS客户端，或服务器便捷调用。

调用数据格式：
`Add 10 20`支持Json数据格式

```csharp
var service = new HttpService();

var config = new TouchSocketConfig();
config.UsePlugin()
    .SetReceiveType(ReceiveType.Auto)
    .SetListenIPHosts(new IPHost[] { new IPHost(7789) })
    .ConfigureContainer(a=> 
    {
        a.SetSingletonLogger<ConsoleLogger>();
    })
    .ConfigurePlugins(a=> 
    {
        a.Add<WebSocketServerPlugin>();//添加WebSocket功能
        a.Add<MyWSCommandLinePlugin>();//添加WS命令行事务。
    });

service.Setup(config)
    .Start();
service.Logger.Message("Http服务器已启动");
service.Logger.Message("WS访问：ws://127.0.0.1:7789/ws");
```

```csharp
/// <summary>
/// 命令行插件。
/// 声明的方法必须以"Command"结尾，支持json字符串，参数之间空格隔开。
/// </summary>
class MyWSCommandLinePlugin : WSCommandLinePlugin
{
    public int AddCommand(int a, int b)
    {
        return a + b;
    }

    public SumClass SumCommand(SumClass sumClass)
    {
        sumClass.Sum = sumClass.A + sumClass.B;
        return sumClass;
    }
}
class SumClass
{
    public int A { get; set; }
    public int B { get; set; }
    public int Sum { get; set; }

}
```
