SuperSocket教程六:配置文件启动后使用自己的请求处理

2023-11-08

上一教程虽然实现了配置文件启动
但是发送信息后返回的缺失AppServer的原始信息
而不是我在教程四锁自定义的信息回复
配置文件启动是实现了
接下来做什么修改可以实现自定义的请求处理呢
其实很简单 只是把原来的那些代码换了个位置罢了

在这里插入图片描述
这个是自定义的类

    static void appServer_NewSessionConnected(MyAppSession session)
        {
            Console.WriteLine(session.RemoteEndPoint+"  "+session.LocalEndPoint.ToString());
            //session.Send("");
        }

        protected override void OnStopped()
        {
            
            base.OnStopped();
        }
 protected override void OnStartup()
        {
            base.OnStartup();
           

        }
          protected override bool Setup(IRootConfig rootConfig, IServerConfig config)
        {
            return base.Setup(rootConfig, config);
        }

上面是重载的Server的几个方法
那么当我们使用配置文件启动一个MyAppServer后
就会生成
MyAppServer的实例
在这里插入图片描述
然后就会调用
在这里插入图片描述
onstartup方法
那么 我们把相关代码转到这里
以前在主程序是进行一个new AppServer操作
现在不需要创建对象了
他就是对象本身 那么把这两行加进来
在这里插入图片描述

  /// <summary>
        /// 对接收的数据进行处理
        /// </summary>
        /// <param name="session"></param>
        /// <param name="requestInfo"></param>
        private static void appServer_NewRequestReceived(MyAppSession session, StringRequestInfo requestInfo)
        {
            try
            {
                int flag = 0;
                switch (requestInfo.Key.ToUpper())
                {
                    case ("ECHO"):
                        if (requestInfo.Body.Contains("hello"))
                        {
                            session.Send("hi my name is Server");
                            flag++;
                        }
                        else
                        {
                            session.Send("ninainaider");
                            flag++;
                        }
                        break;

                    case ("ADD"):
                        new ADD().ExecuteCommand(session, requestInfo);
                        flag++;
                        break;

                    case ("MULT"):
                        new MULT().ExecuteCommand(session, requestInfo);
                        flag++;
                        break;
                }
                if (flag == 0)
                {
                    Console.WriteLine(requestInfo.Key + requestInfo.Body);
                }

            }
            catch (Exception)
            {

                Console.WriteLine("异常");
            }

        }
        /// <summary>
        /// 新的连接触发
        /// </summary>
        /// <param name="session"></param>
        static void appServer_NewSessionConnected(MyAppSession session)
        {
            Console.WriteLine(session.RemoteEndPoint+"  "+session.LocalEndPoint.ToString());
            //session.Send("");
        }

这两个方法的代码也拿过来
启动
在这里插入图片描述
在这里插入图片描述
服务端客户端都正常
进阶成功

(7条消息) SuperSocket教程六:配置文件启动后使用自己的请求处理_亮大大大的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SuperSocket教程六:配置文件启动后使用自己的请求处理 的相关文章

  • HBase 二级索引的设计 (案例讲解)

    HBase 二级索引的设计 案例讲解 最近做的一个项目涉及到了多条件的组合查询 数据存储用的是HBase 恰恰HBase对于这种场景的查询特别不给力 一般HBase的查询都是通过RowKey 要把多条件组合查询的字段都拼接在RowKey中显
  • SQL Server 2016新特性:DROP IF EXISTS

    在我们写T SQL要删除某个对象 表 存储过程等 时 一般会习惯先用IF语句判断该对象是否存在 然后DROP 比如 旧版本 IF OBJECT ID dbo PERSON U IS NOT NULL DROP TABLE PERSON IF
  • element-plus中el-sub-menu样式修改

    注意
  • 二分查找(代码实例)

    基本思路 当我们要从一个序列中查找一个元素的时候 最快想到的方法就是顺序查找法 即 从前到后依次查找 但这种方法过于无脑 就是暴力的把每个元素都排查一遍 元素个数少的时候还行 一旦元素个数多起来 效率是非常低下 所以在实际中这种查找的方法是
  • 前程无忧招聘信息爬取

    爬取前程无忧招聘信息 本文是关于招聘数据爬取 我们选取的网站是前程无忧 百度直接搜索前程无忧 或者51job 我们将看到搜索栏 在搜索栏中输入 数据分析师 将可以看到工作信息 至于分析网站在这里就不在解释了 本爬虫只是简单爬取一点数据 所以
  • 计算机怎么盲打键盘,如何练习盲打 键盘盲打指法练习技巧-电脑教程

    很多人在电脑上打字都还需要看着键盘 不会盲打 看到电脑高手噼里啪啦的打字速度着实令人羡慕 很多小白朋友所自己笨 不会盲打 其实不会盲打并不是因为笨 而是没找到一种简单易行的练习方法 按照标准指法 看着键盘按照从A到Z的顺序打26个字母 最多
  • Mysql多对多关系,分组拼接把多个数据查询到一条数据上

    GROUP CONCAT str 分组字符串拼接 与分组一起使用 案例 查询企业信息以及企业分类信息 其中企业分类信息和企业是多对多的关系 按普通的联表查询 我们会查询到一条企业信息对应多个企业分类 会出现多个记录 如果想实现把同一个企业的

随机推荐

  • 全面理解java中的构造方法以及this关键字的用法(超详细)

    Hello 各位铁汁们 我是小 儿哈 今天我又来更新我的Java基础学习博客了 本篇主要内容概述 1 如何用构造方法初始化对象 2 为啥要有this这个关键字 3 this 属性名访问成员变量 成员方法 4 this 方法名 this 的用
  • Pandas进阶筛选和取数操作

    总结了pandas各种进阶操作与使用技巧 并且对各方法间的效率进行比较 创建一个pandas的dataframe对象作为下文样例 import pandas as pd import numpy as np df pd DataFrame
  • 陀螺研究院:《2019年分布式金融商业趋势及落地情况分析报告》

    2018年末开始 以DeFi为代表的分布式金融 在业内引起了广泛的讨论 传统的金融模式以中央银行 商业银行 非银金融机构为核心展开支付 借贷 保险等场景内的应用 但DeFi彻底摆脱了原有的核心 以分布式账本作为清算依据 从而降低了金融服务中
  • 前馈全连接神经网络和函数逼近、时间序列预测、手写数字识别

    https www cnblogs com conmajia p annt feed forward fully connected neural networks html 前馈全连接神经网络和函数逼近 时间序列预测 手写数字识别 And
  • springboot中JDBC连接超时问题

    最近项目中有一个问题 电子保卡信息要写入数据库 但写入失败 报错 息是这样的 The last packet successfully received from the server was 57 704 088 milliseconds
  • Stream流

    Stream流 Stream 流 是一个来自数据源的元素队列并支持聚合操作 元素是特定类型的对象 形成一个队列 Java中的Stream并不会存储元素 而 是按需计算 数据源 流的来源 可以是集合 数组等 聚合操作 类似SQL语句一样的操作
  • Bes 充电盒协议总结

    1 开盖 上升沿信号开机 a 充电脚设成3 0 v 然后延迟160ms b 充电脚设成5v 然后延时100 ms c充电脚设成3 0 v 2 合盖 a 开5v 然后延时3s b 关5v 然后延时45ms c 发送复位pattern 0101
  • c++ 字符串相等比较

    介绍 在C 中比较字符串的技术 Techniques to Compare Strings in C Strings in C can be compared using either of the following techniques
  • mysql命令 show_mysql--SHOW命令大全

    SHOW AUTHORS 顾名思义 这个要展示的是各位MYSQL开发者的信息 包括姓名 住址及相关注解 e g 1 mysql gt show authors G 1 row Name Brian Krow Aker Location Se
  • LeetCode 62. Unique Paths

    题目链接 题目描述 A robot is located at the top left corner of a m x n grid marked Start in the diagram below The robot can only
  • Microsoft Store无法打开解决方案 错误代码:0x80131500

    这种情况大部分是设置了Vpn代理 提供两种解决方案 一 打开 运行 输入 inetcpl cpl 点还原高级设置 注意看看勾选了TLS 1 2没有 二 如果上述方法没有解决 那么就打开Internet选项 gt 安全选项卡 gt 点一下 将
  • pip安装opencv-python

    文章目录 前言 一 基本概念 二 操作步骤 1 删除旧版本 2 pip升级 3 opencv python安装 总结 前言 OpenCV的全称是Open Source Computer Vision Library 是一个跨平台的计算机视觉
  • 跳转至tabBar页面不触发页面的onLoad,点击底部tabar不触发onLoad

    小程序想跳转tabar页面带参数 使用了全局变量app js的全局 跳转到页面后发现不是每次都执行onLoad方法 传参失败 更换跳转的方法解决 由wx switchTab改为wx reLaunch 就可以了 点击底部导航不触发解决 js
  • Ubuntu挂载Win10下的NTFS硬盘出错的解决方案

    概述 在Ubuntu下打开Win10的NTFS硬盘总是提示出错了 而且是全部的NTFS盘都出错 其中sdb1错误显示如下 he disk contains an unclean file system 0 0 Metadata kept i
  • matplotlib函数总结

    导入matplotlib import matplotlib pyplot as plt import matplotlib Figures对象包含一个或多个Asex对象 方法 matplotlib rc figure figsize 14
  • 在Ubuntu18.04.3系统中安装谷歌拼音输入法(Google Pinyin)

    一 安装前的准备 在Ubuntu18 04下 谷歌拼音输入法是基于Fcitx输入法的 因此 我们需要首先安装Fcitx 一般来说 Ubuntu最新版中都默认安装了Fcitx 但是为了确保一下 我们可以在系统终端中运行如下命令 sudo ap
  • 如何用PHP解决高并发与大流量问题

    举个例子 高速路口 1秒钟来5部车 每秒通过5部车 高速路口运作正常 突然 这个路口1秒钟只能通过4部车 车流量仍然依旧 结果必定出现大塞车 5条车道忽然变成4条车道的感觉 同理 某一个秒内 20 500个可用连接进程都在满负荷工作中 却仍
  • StrangeIOC中Signal类使用详解

    在讲解Signal类之前 先复习一下dispatch的用法 1 View层调用自身的dispatch view 告知绑定的Mediator层也调用自身的dispatch mediator 2 Mediator层的dispatch media
  • 如何实现在的Windows上运行的Linux程序(附示例代码)

    而今天的这篇文章将会讲解如何自己实现一个简单的原生Linux程序运行器 这个运行器在用户层实现 原理和Bash On Windows不完全一样 比较接近Linux上的Wine 示例程序完整的代码在github上 地址是 https gith
  • SuperSocket教程六:配置文件启动后使用自己的请求处理

    上一教程虽然实现了配置文件启动 但是发送信息后返回的缺失AppServer的原始信息 而不是我在教程四锁自定义的信息回复 配置文件启动是实现了 接下来做什么修改可以实现自定义的请求处理呢 其实很简单 只是把原来的那些代码换了个位置罢了 这个