Pisces.IM.Server(持续更新...)
Pisces.IM.Server

服务端(windows)图示

WSL2
目前服务端分别由
通讯服务Socket 监听本地端口5000
文件服务Socket 监听本地端口5001
AppSettings.json配置
{
"AppSettings": {
"ServerIPAddress": "127.0.0.1",
"ServerPort": 5000,
"MaxListener": 10,
"ServiceID": "Local.Pisces.Server01",
"FilePort": 5001
}
}
1.ServerIPAddress: 服务器地址
2.ServerPort:通讯监听端口
3.MaxListener:最大监听客户端数量
4.ServiceID:服务端ID,区域管理
5.FilePort:文件传输监听端口
1 static void Main() 2 { 3 4 HostApplicationBuilder builder = Host.CreateApplicationBuilder(); 5 builder.Services.AddScoped<AppSettingsFactory>(); 6 builder.Services.AddScoped<ICommunicationSettings, CommunicationSettings>(); 7 builder.Services.AddScoped<ICommunication, CommunicationServer>(); 8 builder.Services.AddScoped<IFileTransfer, FileTransferServer>(); 9 ConfigurationBuilder configurationBuilder = new(); 10 configurationBuilder.AddJsonFile("AppSettings.json",optional:false,reloadOnChange:true); 11 IConfigurationRoot configurationRoot = configurationBuilder.Build(); 12 builder.Services.AddOptions().Configure<AppSettings>(e => configurationRoot.GetSection("AppSettings").Bind(e)); 13 14 var tokenSource = new CancellationTokenSource(); 15 16 using var host = builder.Build(); 17 18 host.Services.GetRequiredService<AppSettingsFactory>(); 19 20 host.Services.GetService<ICommunicationSettings>(); 21 22 CommunicationFactory.InitCommunication(host.Services.GetService<ICommunication>()); 23 FileTransferFactory.InitFileTransfer(host.Services.GetService<IFileTransfer>()); 24 25 Task.Run(() => ..., tokenSource.Token); 26 27 28 29 host.Run(); 30 tokenSource.Cancel(); 31 32 CommunicationFactory.GetCommunication()?.Stop(); 33 FileTransferFactory.GetFileTransfer()?.Stop(); 34 35 }
目前主要的通讯实现在 Pisces.IM.Communication下
详细源码(Pisces.IM.Server.Program.cs):github
浙公网安备 33010602011771号