前段时间使用了supersocket Client端,今天测试一下服务端
using StraightLineSorting.Helper;
using SuperSocket;
using SuperSocket.ProtoBase;
using System.Text;
namespace StraightLineSorting.Communication
{
public static class TCPServerA
{
public static IAppSession sessionA = null;
public static List<IAppSession> sessionList = new List<IAppSession>();
static IHost host = null;
public static async Task RunServer()
{
host = SuperSocketHostBuilder.Create<TextPackageInfo, LinePipelineFilter>()
.UseSessionHandler(async (session) =>
{
await session.SendAsync(Encoding.UTF8.GetBytes($"conn {session.SessionID}" + "\r\n"));
sessionList.Add(session);
})
.UsePackageHandler(async (s, p) =>
{
await s.SendAsync(Encoding.UTF8.GetBytes(p.Text + "\r\n"));
})
.ConfigureSuperSocket(options =>
{
options.Name = "Echo Server";
options.AddListener(new ListenOptions
{
Ip = "Any",
Port = 4040
}
);
})
.ConfigureLogging((hostCtx, loggingBuilder) =>
{
loggingBuilder.AddConsole();
LogHelper.Debug("SuperSocketHostBuilder");
})
.Build();
await host.RunAsync();
LogHelper.Debug("SuperSocketHostBuilder start");
}
public static void send(string cmd)
{
sessionList.ForEach(a =>
{
a.SendAsync(Encoding.UTF8.GetBytes($"{cmd}" + "\r\n"));
});
}
}
}