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

 

posted @ 2023-09-22 14:49  pisces91  阅读(24)  评论(0)    收藏  举报