上一教程虽然实现了配置文件启动
但是发送信息后返回的缺失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("");
}
这两个方法的代码也拿过来
启动
服务端客户端都正常
进阶成功