首页 > 其他分享 >TouchSocke 中使用WebSocket的快捷事务命令行

TouchSocke 中使用WebSocket的快捷事务命令行

时间:2024-06-10 10:30:22浏览次数:23  
标签:WebSocket sumClass int System TouchSocke TouchSocket 快捷 using public

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,返回整数值。

        4.3、websocket/ws/wss在线调试测试工具

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

相关文章

  • 练习:用户设计一个程序,要求程序每隔1s就获取当前系统时间并输出到终端,但是用户不打算让
    练习:用户设计一个程序,要求程序每隔1s就获取当前系统时间并输出到终端,但是用户不打算让其他用户通过快捷键Ctrl+C来强制结束该程序,所以要求现在设计该程序。#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<signal.h>#include<time.h>//......
  • 练习:用户设计一个程序,要求程序每隔1s就获取当前系统时间并输出到终端,但是用户不打算让
    练习:用户设计一个程序,要求程序每隔1s就获取当前系统时间并输出到终端,但是用户不打算让其他用户通过快捷键Ctrl+C来强制结束该程序,所以要求现在设计该程序。#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<signal.h>//信号处理函数,用于忽略S......
  • Go使用websocket+nats队列实现聊天
    示例用的github.com/olahol/melody其实是在gorilla/websocket的基础上封装了一下packagemainimport( "encoding/json" "fmt" "github.com/nats-io/nats.go" "github.com/olahol/melody" "log" "net/http" "runti......
  • 电脑快捷键
    快捷键ctrl+c:复制ctrl+v:粘贴ctrl+x:剪切ctrl+a:全选ctrl+s:保存alt+f4:关闭当前窗口shift+delete:删除windows+r:命令行(可以打开运行窗口)windowns+e:打开我的电脑ctrl+shift+esc/ctrl+shift+.(在数字区域):任务管理器Windows+Tab:切换应用程序......
  • vim快捷键
    几点经验:如果要将vim向vscode对齐,没有插件是做不到vim的插件要编写众多的配置文件、并且有部分插件挑平台;像vscode那样基本上开箱即用比较困难刚开始学习还能折腾一下,到最后发现:vim最本质的是没有插件的本体。很多时候没有条件(或不想)配置插件,而能否熟练操作本体才是最关键的!......
  • 快捷键
    快捷键常用快捷键ctrl+A全选ctrl+Z撤销ctrl+S保存shift+delete强制删除文件windows+E打开电脑windows+tab切换电脑常用Dos命令:(鼠标单击右击是粘贴)1.盘符切换:(英文)D:2.查看当前目录下的所有文件:dircd/d文件夹切换磁盘/磁盘下的某个文件cd..切换当前目录......
  • websocket
     2024-06-0611:26:53.333DEBUG[http-nio-8080-exec-6]org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator62-[TxId:,SpanId:]TransporterrorinStandardWebSocketSession[id=e4702cd6-4150-c22c-b049-8da635daa236,uri=wss://zkh-g......
  • IDEA快捷键——IDEA熟练操作必备
    智能补全:Ctrl+Shift+Space自我修复:Alt+Enter重构一切:Ctrl+Shift+Alt+T创造万物:Alt+Insert自动完成:Ctrl+Shift+Enter无处藏身:Shift+Shift发号施令:Ctrl+Shift+A代码生成:Template/Postfix+Tab选你所想:Ctrl+W切来切去:Ctrl+Tab字符串格式切换:Alt+Shift+U代码提示:CTRL+空格快捷......
  • 若依框架整合WebSocket
    若依框架整合WebSocket一、前端1、定义socket对象data(){return{webSocket:null,}}2、建立连接//如果webSocket为null进行建立连接if(!this.webSocket){this.webSocket=newWebSocket(`ws://localhost:8081/handleData/`); //建立连接......
  • html标签的快捷
     html标签的快捷录入方式一:<ul><li><ahref=""></a></li></ul>如果要写上面的标签,直接写##ul>li>a然后按Tap键盘,就可以快速构建二:<ul><li><ahref=""></a></li><li><......