ln.http/router/WebsocketRouter.cs

33 lines
859 B
C#

using System;
using ln.http.websocket;
using ln.http.exceptions;
using ln.logging;
namespace ln.http.router
{
public class WebsocketRouter : IHttpRouter
{
Func<HttpRequest, WebSocket> createWebsocket;
public WebsocketRouter(Func<HttpRequest, WebSocket> createWebsocketDelegate)
{
createWebsocket = createWebsocketDelegate;
}
public WebSocket CreateWebSocket(HttpRequest request) => createWebsocket(request);
public HttpResponse Route(string path, HttpRequest httpRequest)
{
WebSocket websocket = CreateWebSocket(httpRequest);
try
{
websocket.Run();
}
catch (Exception e)
{
Logging.Log(e);
}
throw new DisposeConnectionException();
}
}
}