33 lines
881 B
C#
33 lines
881 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(HttpRoutingContext routingContext, HttpRequest httpRequest)
|
|
{
|
|
WebSocket websocket = CreateWebSocket(httpRequest);
|
|
try
|
|
{
|
|
websocket.Run();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Logging.Log(e);
|
|
}
|
|
throw new DisposeConnectionException();
|
|
}
|
|
}
|
|
}
|