#region << 版 本 注 释 >> /*-------------------------------------------------------------------- * 版权所有 (c) 2025 WenJY 保留所有权利。 * CLR版本:4.0.30319.42000 * 机器名称:Mr.Wen's MacBook Pro * 命名空间:Sln.Iot * 唯一标识:739C303A-A6D2-49AD-812E-F87E020C303C * * 创建者:WenJY * 电子邮箱: * 创建时间:2025-05-09 17:37:18 * 版本:V1.0.0 * 描述: * *-------------------------------------------------------------------- * 修改人: * 时间: * 修改说明: * * 版本:V1.0.0 *--------------------------------------------------------------------*/ #endregion << 版 本 注 释 >> using Sln.Iot.Business; using TouchSocket.Core; using TouchSocket.Http; using TouchSocket.Rpc; using TouchSocket.Sockets; using TouchSocket.WebApi.Swagger; namespace Sln.Iot; public class WebApiServer { private readonly DevControlBusiness _devControlBusiness; public WebApiServer(DevControlBusiness devControlBusiness) { _devControlBusiness = devControlBusiness; } public void Init() { try { var service = new HttpService(); service.Setup(new TouchSocketConfig() .SetListenIPHosts(7789) .ConfigureContainer(a => { a.AddRpcStore(store => { store.RegisterServer(_devControlBusiness);//注册服务 }); a.AddCors(corsOption => { corsOption.Add("cors", corsBuilder => { corsBuilder.AllowAnyMethod() .AllowAnyOrigin(); }); }); a.AddLogger(logger => { logger.AddConsoleLogger(); logger.AddFileLogger(); }); }) .ConfigurePlugins(a => { a.UseCheckClear(); a.Add(); a.UseWebApi() .ConfigureConverter(converter => { converter.AddJsonSerializerFormatter(new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.None }); }); a.UseSwagger();//使用Swagger页面 //.UseLaunchBrowser(); a.UseDefaultHttpServicePlugin(); })); service.Start(); Console.WriteLine("以下连接用于测试webApi"); Console.WriteLine($"使用:http://127.0.0.1:7789/swagger/index.html"); }catch(Exception ex) { Console.WriteLine(ex.ToString()); } //Console.ReadLine(); } } internal class AuthenticationPlugin : PluginBase, IHttpPlugin { public async Task OnHttpRequest(IHttpSocketClient client, HttpContextEventArgs e) { await e.InvokeNext(); } }