|
44 | 44 | using GameFrameX.SuperSocket.Server.Abstractions; |
45 | 45 | using GameFrameX.SuperSocket.Server.Abstractions.Session; |
46 | 46 | using GameFrameX.SuperSocket.Server.Host; |
| 47 | +using GameFrameX.SuperSocket.Udp; |
47 | 48 | using GameFrameX.SuperSocket.WebSocket; |
48 | 49 | using GameFrameX.SuperSocket.WebSocket.Server; |
49 | 50 | using GameFrameX.Utility; |
@@ -213,31 +214,38 @@ private async Task StartServer(List<BaseHttpHandler> baseHandler, Func<string, B |
213 | 214 | LogHelper.InfoConsole($"start tcp server type: {ServerType}, address: {Setting.InnerHost}, port: {Setting.InnerPort}"); |
214 | 215 | multipleServerHostBuilder.AddServer<IMessage, MessageObjectPipelineFilter>(builder => |
215 | 216 | { |
216 | | - builder |
217 | | - .UseClearIdleSession() |
218 | | - .UseSessionHandler(OnConnected, OnDisconnected) |
219 | | - .UsePackageHandler(PackageHandler, PackageErrorHandler) |
220 | | - .UseInProcSessionContainer() |
221 | | - .ConfigureServices((context, serviceCollection) => |
| 217 | + var serverBuilder = builder |
| 218 | + .UseClearIdleSession() |
| 219 | + .UseSessionHandler(OnConnected, OnDisconnected) |
| 220 | + .UsePackageHandler(PackageHandler, PackageErrorHandler) |
| 221 | + .UseInProcSessionContainer(); |
| 222 | + |
| 223 | + // 启用UDP 检查是否可用 |
| 224 | + if (Setting.IsEnableUdp) |
| 225 | + { |
| 226 | + serverBuilder.UseUdp(); |
| 227 | + } |
| 228 | + |
| 229 | + serverBuilder.ConfigureServices((context, serviceCollection) => |
| 230 | + { |
| 231 | + serviceCollection.Configure<ServerOptions>(options => |
222 | 232 | { |
223 | | - serviceCollection.Configure<ServerOptions>(options => |
| 233 | + var listenOptions = new ListenOptions() |
224 | 234 | { |
225 | | - var listenOptions = new ListenOptions() |
226 | | - { |
227 | | - Ip = "Any", |
228 | | - Port = Setting.InnerPort, |
229 | | - }; |
230 | | - options.AddListener(listenOptions); |
231 | | - }); |
232 | | - // foreach (var serviceDescriptor in serviceCollection) |
233 | | - // { |
234 | | - // if (serviceDescriptor.ServiceType == typeof(IPackageDecoder<IMessage>)) |
235 | | - // { |
236 | | - // serviceDescriptor.ImplementationInstance ; |
237 | | - // LogHelper.Console("XX"); |
238 | | - // } |
239 | | - // } |
| 235 | + Ip = "Any", |
| 236 | + Port = Setting.InnerPort, |
| 237 | + }; |
| 238 | + options.AddListener(listenOptions); |
240 | 239 | }); |
| 240 | + // foreach (var serviceDescriptor in serviceCollection) |
| 241 | + // { |
| 242 | + // if (serviceDescriptor.ServiceType == typeof(IPackageDecoder<IMessage>)) |
| 243 | + // { |
| 244 | + // serviceDescriptor.ImplementationInstance ; |
| 245 | + // LogHelper.Console("XX"); |
| 246 | + // } |
| 247 | + // } |
| 248 | + }); |
241 | 249 | }); |
242 | 250 | LogHelper.InfoConsole($"start tcp server startup complete type: {ServerType}, address: {Setting.InnerHost}, port: {Setting.InnerPort}"); |
243 | 251 | } |
|
0 commit comments