gpt4 book ai didi

c# - 如何在没有 ASP.NET 的情况下使用 System.Net.WebSockets?

转载 作者:可可西里 更新时间:2023-11-01 07:44:03 25 4
gpt4 key购买 nike

我想在 .NET 4.5 及更高版本(在 Windows 8.1 上)中使用新的 System.Net.WebSockets 类实现一个简单的聊天服务器。但是,我只找到在 ASP.NET 环境中使用这些类的示例(尤其是此处的示例:http://www.codemag.com/Article/1210051)

我没有这样的服务器,并且希望尽可能“原始”地实现 websocket 服务器,但不必重新实现所有 websocket 协议(protocol),因为 Microsoft 希望已经在 .NET 4.5 中做到了这一点。

我想简单地实例化一个新的 WebSocket 类,就像我对普通 Socket 所做的那样,但是构造函数是 protected 。所以我去创建一个继承自它的类,但后来我注意到我必须实现如此多的抽象方法和属性,看起来我正在重写整个逻辑(特别是因为我必须实现诸如 StateSendAsync)。

恐怕 MSDN 文档对我没有帮助。那里的文档处于预发布状态,许多评论只是说“待定”或“何时实现”。

最佳答案

是的。

最简单的方法是使用 HTTPListener。如果您搜索 HTTPListener WebSocket,您会发现大量示例。

简而言之(伪代码)

HttpListener httpListener = new HttpListener();
httpListener.Prefixes.Add("http://localhost/");
httpListener.Start();

HttpListenerContext context = await httpListener.GetContextAsync();
if (context.Request.IsWebSocketRequest)
{
HttpListenerWebSocketContext webSocketContext = await context.AcceptWebSocketAsync(null);
WebSocket webSocket = webSocketContext.WebSocket;
while (webSocket.State == WebSocketState.Open)
{
await webSocket.SendAsync( ... );
}
}

需要 .NET 4.5 和 Windows 8 或更高版本。

关于c# - 如何在没有 ASP.NET 的情况下使用 System.Net.WebSockets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30490140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com