SuperSocket如何构建的Socket服务?

摘要:SuperSocket 是一款基于 .NET 技术栈的高性能、跨平台、可扩展的 Socket 服务器框架,专为 TCPUDP 服务端应用开发设计,具备稳定可靠、易于扩展的优势; 一、NuGet 包管理器中下载相关包 安装 SuperSoc
SuperSocket 是一款基于 .NET 技术栈的高性能、跨平台、可扩展的 Socket 服务器框架,专为 TCP/UDP 服务端应用开发设计,具备稳定可靠、易于扩展的优势; 一、NuGet 包管理器中下载相关包 安装 SuperSocket.WebSocket.Server 包 二、启动SocketServer服务 注册启动WebSocket Server 服务方法 /// <summary> /// WebSocket服务器实例 /// </summary> private IHost? _webSocketServer; /// <summary> /// 存储所有连接的WebSocket会话 /// </summary> private readonly ConcurrentDictionary<string, WebSocketSession> _connectedSessions = new(); /// <summary> /// 启动 WebSocket 服务 /// </summary> /// <param name="port">监听端口</param> /// <param name="ip">监听IP地址</param> /// <param name="cancellationToken">取消令牌</param> /// <returns>异步任务</returns> public async Task WebSocketServerAsync(int port, IPAddress ip, CancellationToken cancellationToken = default) { try { _webSocketServer = WebSocketHostBuilder.Create() .UseSession<ConnectionSession>() .UseWebSocketMessageHandler( // TODO: 监听会话消息事件 async (session, message) => await HandleWebSocketMessageAsync(session, message.Message) ) .ConfigureServices(services => { // TODO: 监听会话连接事件 services.AddSingleton<Action<WebSocketSession>>(session => { Console.WriteLine($"WebSocket会话已连接: {session.SessionID}"); _connectedSessions.TryAdd(session.SessionID, session); }); // TODO: 监听会话断开事件 services.AddSingleton<Action<WebSocketSession, CloseEventArgs>>((session, args) => { Console.WriteLine($"WebSocket会话已断开: {session.SessionID}"); _connectedSessions.TryRemove(session.SessionID, out _); }); }) .ConfigureAppConfiguration((hostContext, configApp) => { var config = new Dictionary
阅读全文