1、效果
2、开发环境:
2.1、NetFramework 4.5
21.2、NuGet中安装TouchSocket 2.0.0、TouchSocket.Core 2.0.0、TouchSocket.Http 2.0.0 如下图。
3、代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TouchSocket.Core;
using TouchSocket.Http;
using TouchSocket.Http.WebSockets;
using TouchSocket.Sockets;
namespace ConsoleAppWebSocketServer
{
class Program
{
static void Main(string[] args)
{
var service = new HttpService();
service.Setup(new TouchSocketConfig()//加载配置
.SetListenIPHosts(7789)
.ConfigureContainer(a =>
{
a.AddConsoleLogger();
})
.ConfigurePlugins(a =>
{
a.UseWebSocket()//添加WebSocket功能
.SetWSUrl("/ws")//设置url直接可以连接。
.UseAutoPong();//当收到ping报文时自动回应pong
a.Add<MyWSCommandLinePlugin>();
}));
service.Start();
service.Logger.Info("服务器已启动");
Console.ReadKey();
}
/// <summary>
/// 命令行插件。
/// 声明的方法必须为公开实例方法、以"Command"结尾,且支持json字符串,参数之间空格隔开。
/// </summary>
public class MyWSCommandLinePlugin : WebSocketCommandLinePlugin
{
public MyWSCommandLinePlugin(ILog logger) : base(logger)
{
}
public int AddCommand(int a, int b)
{
return a + b;
}
//当第一个参数,直接或间接实现ITcpClientBase接口时,会收集到当前请求的客户端,从而可以获取IP等。
public SumClass SumCommand(IHttpClientBase client, SumClass sumClass)
{
sumClass.Sum = sumClass.A + sumClass.B;
return sumClass;
}
}
public class SumClass
{
public int A { get; set; }
public int B { get; set; }
public int Sum { get; set; }
}
}
}
4、客户端输入内容为
4.1、Sum {"A":10,"B":20},返回Json数据格式数据。
4.2、Add 10 20,返回整数值。
5、参考工程在这里可以下载。
https://download.csdn.net/download/xingchengaiwei/89374775
标签:WebSocket,sumClass,int,System,TouchSocke,TouchSocket,快捷,using,public From: https://blog.csdn.net/xingchengaiwei/article/details/139308161