mirror of
https://github.com/AlexMacocian/MTSC.git
synced 2026-07-21 01:39:31 +00:00
Renamed namespace for easier access
Added tests for stopping the server properly
This commit is contained in:
@@ -2,9 +2,9 @@
|
||||
using MTSC.Common.WebSockets.ServerModules;
|
||||
using MTSC.Exceptions;
|
||||
using MTSC.Logging;
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.Server.UsageMonitors;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
using MTSC.ServerSide.UsageMonitors;
|
||||
using System;
|
||||
using System.Numerics;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
@@ -4,7 +4,7 @@ using MTSC.Common.Http.RoutingModules;
|
||||
using MTSC.Common.Http.ServerModules;
|
||||
using MTSC.Exceptions;
|
||||
using MTSC.Logging;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
@@ -23,12 +23,12 @@ namespace MTSC.UnitTests
|
||||
private volatile byte[] receivedMessage = null;
|
||||
private static int stressIterations = 1000;
|
||||
public TestContext TestContext { get; set; }
|
||||
static Server.Server Server { get; set; }
|
||||
static ServerSide.Server Server { get; set; }
|
||||
|
||||
[ClassInitialize]
|
||||
public static void InitializeServer(TestContext testContext)
|
||||
{
|
||||
Server = new Server.Server(800)
|
||||
Server = new ServerSide.Server(800)
|
||||
.AddHandler(new WebsocketHandler()
|
||||
.AddWebsocketHandler(new Common.WebSockets.ServerModules.EchoModule()))
|
||||
.AddHandler(new HttpHandler()
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
using MTSC.Common.Http;
|
||||
using MTSC.Common.Http.RoutingModules;
|
||||
using MTSC.Server;
|
||||
using MTSC.ServerSide;
|
||||
|
||||
namespace MTSC.UnitTests
|
||||
{
|
||||
public class EchoModule : HttpRouteBase
|
||||
{
|
||||
public override HttpResponse HandleRequest(HttpRequest request, ClientData client, Server.Server server)
|
||||
public override HttpResponse HandleRequest(HttpRequest request, ClientData client, ServerSide.Server server)
|
||||
{
|
||||
return new HttpResponse { BodyString = request.BodyString, StatusCode = HttpMessage.StatusCodes.OK };
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ namespace MTSC.UnitTests
|
||||
[TestClass]
|
||||
public class ResourcesTests
|
||||
{
|
||||
public static Server.Server server;
|
||||
public static ServerSide.Server server;
|
||||
[ClassInitialize]
|
||||
public static void InitializeServer(TestContext testContext)
|
||||
{
|
||||
server = new Server.Server();
|
||||
server = new ServerSide.Server();
|
||||
}
|
||||
[TestMethod]
|
||||
public void AddAndGetResource()
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using MTSC.ServerSide;
|
||||
using System.Threading;
|
||||
|
||||
namespace MTSC.UnitTests
|
||||
{
|
||||
[TestClass]
|
||||
public class ServerTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void Stop()
|
||||
{
|
||||
Server server = new Server();
|
||||
server.RunAsync();
|
||||
Thread.Sleep(1000);
|
||||
Assert.IsTrue(server.Running);
|
||||
server.Stop();
|
||||
Thread.Sleep(1000);
|
||||
Assert.IsFalse(server.Running);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
using MTSC.Server.Resources;
|
||||
using MTSC.ServerSide.Resources;
|
||||
|
||||
namespace MTSC.UnitTests
|
||||
{
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
using MTSC.Common.Http;
|
||||
using MTSC.Common.Http.RoutingModules;
|
||||
using MTSC.Server;
|
||||
using MTSC.ServerSide;
|
||||
using System.Web;
|
||||
|
||||
namespace MTSC.UnitTests
|
||||
{
|
||||
class TestQueryModule : HttpRouteBase
|
||||
{
|
||||
public override HttpResponse HandleRequest(HttpRequest request, ClientData client, Server.Server server)
|
||||
public override HttpResponse HandleRequest(HttpRequest request, ClientData client, ServerSide.Server server)
|
||||
{
|
||||
var query = HttpUtility.ParseQueryString(request.RequestQuery);
|
||||
if(query.Count == 2 &&
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using MTSC.Server;
|
||||
using MTSC.ServerSide;
|
||||
|
||||
namespace MTSC.Common.Http.RoutingModules
|
||||
{
|
||||
public sealed class Http200Module : HttpRouteBase
|
||||
{
|
||||
public override HttpResponse HandleRequest(HttpRequest request, ClientData client, Server.Server server)
|
||||
public override HttpResponse HandleRequest(HttpRequest request, ClientData client, ServerSide.Server server)
|
||||
{
|
||||
return new HttpResponse { StatusCode = HttpMessage.StatusCodes.OK };
|
||||
}
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
using MTSC.Server;
|
||||
using MTSC.ServerSide;
|
||||
using System;
|
||||
|
||||
namespace MTSC.Common.Http.RoutingModules
|
||||
{
|
||||
public abstract class HttpRouteBase
|
||||
{
|
||||
public HttpResponse CallHandleRequest(HttpRequest request, ClientData client, Server.Server server)
|
||||
public HttpResponse CallHandleRequest(HttpRequest request, ClientData client, ServerSide.Server server)
|
||||
{
|
||||
return this.HandleRequest(request, client, server);
|
||||
}
|
||||
|
||||
public abstract HttpResponse HandleRequest(HttpRequest request, ClientData client, Server.Server server);
|
||||
public abstract HttpResponse HandleRequest(HttpRequest request, ClientData client, ServerSide.Server server);
|
||||
}
|
||||
public abstract class HttpRouteBase<T> : HttpRouteBase
|
||||
{
|
||||
@@ -32,11 +32,11 @@ namespace MTSC.Common.Http.RoutingModules
|
||||
return this;
|
||||
}
|
||||
|
||||
public override HttpResponse HandleRequest(HttpRequest request, ClientData client, Server.Server server)
|
||||
public override HttpResponse HandleRequest(HttpRequest request, ClientData client, ServerSide.Server server)
|
||||
{
|
||||
return HandleRequest(template.Invoke(request), client, server);
|
||||
}
|
||||
|
||||
public abstract HttpResponse HandleRequest(T request, ClientData client, Server.Server server);
|
||||
public abstract HttpResponse HandleRequest(T request, ClientData client, ServerSide.Server server);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
|
||||
namespace MTSC.Common.Http.ServerModules
|
||||
{
|
||||
@@ -17,7 +17,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
this.rootFolder = Path.GetFullPath(rootFolder);
|
||||
}
|
||||
#region Interface Implementation
|
||||
bool IHttpModule.HandleRequest(Server.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
bool IHttpModule.HandleRequest(ServerSide.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
{
|
||||
if(request.Method == HttpMessage.HttpMethods.Get)
|
||||
{
|
||||
@@ -66,7 +66,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
return false;
|
||||
}
|
||||
|
||||
void IHttpModule.Tick(Server.Server server, HttpHandler handler)
|
||||
void IHttpModule.Tick(ServerSide.Server server, HttpHandler handler)
|
||||
{
|
||||
foreach(KeyValuePair<string, Tuple<byte[], DateTime>> keyValuePair in fileCache)
|
||||
{
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
|
||||
namespace MTSC.Common.Http.ServerModules
|
||||
{
|
||||
public sealed class HelloWorldModule : IHttpModule
|
||||
{
|
||||
byte[] response = Encoding.ASCII.GetBytes("Hello, World!");
|
||||
bool IHttpModule.HandleRequest(Server.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
bool IHttpModule.HandleRequest(ServerSide.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
{
|
||||
if (request.Method == HttpMessage.HttpMethods.Get)
|
||||
{
|
||||
@@ -22,7 +22,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
return true;
|
||||
}
|
||||
|
||||
void IHttpModule.Tick(Server.Server server, HttpHandler handler)
|
||||
void IHttpModule.Tick(ServerSide.Server server, HttpHandler handler)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System;
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
|
||||
namespace MTSC.Common.Http.ServerModules
|
||||
{
|
||||
@@ -17,7 +17,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
/// <param name="request"></param>
|
||||
/// <param name="response"></param>
|
||||
/// <returns>True so no other handler modifies the response, so the response contains the 404 return status code.</returns>
|
||||
bool IHttpModule.HandleRequest(Server.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
bool IHttpModule.HandleRequest(ServerSide.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
{
|
||||
if(request.Method == HttpMessage.HttpMethods.Get)
|
||||
{
|
||||
@@ -28,7 +28,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
return true;
|
||||
}
|
||||
|
||||
void IHttpModule.Tick(Server.Server server, HttpHandler handler)
|
||||
void IHttpModule.Tick(ServerSide.Server server, HttpHandler handler)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using MTSC.Common.Http.RoutingModules;
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static MTSC.Common.Http.HttpMessage;
|
||||
@@ -9,19 +9,19 @@ namespace MTSC.Common.Http.ServerModules
|
||||
{
|
||||
public sealed class HttpRoutingModule : IHttpModule
|
||||
{
|
||||
private static Func<Server.Server, HttpRequest, ClientData, RouteEnablerResponse> alwaysEnabled = (server, request, client) => RouteEnablerResponse.Accept;
|
||||
private static Func<ServerSide.Server, HttpRequest, ClientData, RouteEnablerResponse> alwaysEnabled = (server, request, client) => RouteEnablerResponse.Accept;
|
||||
|
||||
private Dictionary<HttpMethods, Dictionary<string, (HttpRouteBase,
|
||||
Func<Server.Server, HttpRequest, ClientData, RouteEnablerResponse>)>> moduleDictionary =
|
||||
Func<ServerSide.Server, HttpRequest, ClientData, RouteEnablerResponse>)>> moduleDictionary =
|
||||
new Dictionary<HttpMethods, Dictionary<string, (HttpRouteBase,
|
||||
Func<Server.Server, HttpRequest, ClientData, RouteEnablerResponse>)>>();
|
||||
Func<ServerSide.Server, HttpRequest, ClientData, RouteEnablerResponse>)>>();
|
||||
|
||||
public HttpRoutingModule()
|
||||
{
|
||||
foreach (HttpMethods method in (HttpMethods[])Enum.GetValues(typeof(HttpMethods)))
|
||||
{
|
||||
moduleDictionary[method] = new Dictionary<string, (HttpRouteBase,
|
||||
Func<Server.Server, HttpRequest, ClientData, RouteEnablerResponse>)>();
|
||||
Func<ServerSide.Server, HttpRequest, ClientData, RouteEnablerResponse>)>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
HttpMethods method,
|
||||
string uri,
|
||||
HttpRouteBase routeModule,
|
||||
Func<Server.Server, HttpRequest, ClientData, RouteEnablerResponse> routeEnabler)
|
||||
Func<ServerSide.Server, HttpRequest, ClientData, RouteEnablerResponse> routeEnabler)
|
||||
{
|
||||
moduleDictionary[method][uri] = (routeModule, routeEnabler);
|
||||
return this;
|
||||
@@ -52,7 +52,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
return this;
|
||||
}
|
||||
|
||||
bool IHttpModule.HandleRequest(Server.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
bool IHttpModule.HandleRequest(ServerSide.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
{
|
||||
/*
|
||||
* Now find if a routing module exists. If not let other handlers try and handle the message.
|
||||
@@ -89,6 +89,6 @@ namespace MTSC.Common.Http.ServerModules
|
||||
return false;
|
||||
}
|
||||
|
||||
void IHttpModule.Tick(Server.Server server, HttpHandler handler) { }
|
||||
void IHttpModule.Tick(ServerSide.Server server, HttpHandler handler) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
|
||||
namespace MTSC.Common.Http.ServerModules
|
||||
{
|
||||
@@ -15,11 +15,11 @@ namespace MTSC.Common.Http.ServerModules
|
||||
/// <param name="client">Client data.</param>
|
||||
/// <param name="request">Request message.</param>
|
||||
/// <returns>True if no other module should handle the received request.</returns>
|
||||
bool HandleRequest(Server.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response);
|
||||
bool HandleRequest(ServerSide.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response);
|
||||
/// <summary>
|
||||
/// Perform periodic operations.
|
||||
/// </summary>
|
||||
/// <param name="handler"></param>
|
||||
void Tick(Server.Server server, HttpHandler handler);
|
||||
void Tick(ServerSide.Server server, HttpHandler handler);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MTSC.Exceptions;
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
|
||||
namespace MTSC.Common.Http.ServerModules
|
||||
{
|
||||
@@ -81,7 +81,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
#endregion
|
||||
|
||||
#region Interface Implementation
|
||||
bool IHttpModule.HandleRequest(Server.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
bool IHttpModule.HandleRequest(ServerSide.Server server, HttpHandler handler, ClientData client, HttpRequest request, ref HttpResponse response)
|
||||
{
|
||||
if (request.Method == HttpMessage.HttpMethods.Post &&
|
||||
request.Headers.ContainsHeader(HttpMessage.EntityHeaders.ContentType))
|
||||
@@ -111,7 +111,7 @@ namespace MTSC.Common.Http.ServerModules
|
||||
}
|
||||
}
|
||||
|
||||
void IHttpModule.Tick(Server.Server server, HttpHandler handler)
|
||||
void IHttpModule.Tick(ServerSide.Server server, HttpHandler handler)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
|
||||
namespace MTSC.Common.WebSockets.ServerModules
|
||||
{
|
||||
public sealed class BroadcastModule : IWebsocketModule
|
||||
{
|
||||
void IWebsocketModule.ConnectionClosed(Server.Server server, WebsocketHandler handler, ClientData client)
|
||||
void IWebsocketModule.ConnectionClosed(ServerSide.Server server, WebsocketHandler handler, ClientData client)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void IWebsocketModule.ConnectionInitialized(Server.Server server, WebsocketHandler handler, ClientData client)
|
||||
void IWebsocketModule.ConnectionInitialized(ServerSide.Server server, WebsocketHandler handler, ClientData client)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool IWebsocketModule.HandleReceivedMessage(Server.Server server, WebsocketHandler handler, ClientData client, WebsocketMessage receivedMessage)
|
||||
bool IWebsocketModule.HandleReceivedMessage(ServerSide.Server server, WebsocketHandler handler, ClientData client, WebsocketMessage receivedMessage)
|
||||
{
|
||||
receivedMessage.Masked = false;
|
||||
//receivedMessage.Opcode = WebsocketMessage.Opcodes.Text;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
|
||||
namespace MTSC.Common.WebSockets.ServerModules
|
||||
{
|
||||
@@ -12,18 +12,18 @@ namespace MTSC.Common.WebSockets.ServerModules
|
||||
}
|
||||
#endregion
|
||||
#region Interface Implementation
|
||||
bool IWebsocketModule.HandleReceivedMessage(Server.Server server, WebsocketHandler handler, ClientData client, WebsocketMessage receivedMessage)
|
||||
bool IWebsocketModule.HandleReceivedMessage(ServerSide.Server server, WebsocketHandler handler, ClientData client, WebsocketMessage receivedMessage)
|
||||
{
|
||||
SendMessage(handler, client, receivedMessage);
|
||||
return false;
|
||||
}
|
||||
|
||||
void IWebsocketModule.ConnectionClosed(Server.Server server, WebsocketHandler handler, ClientData client)
|
||||
void IWebsocketModule.ConnectionClosed(ServerSide.Server server, WebsocketHandler handler, ClientData client)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void IWebsocketModule.ConnectionInitialized(Server.Server server, WebsocketHandler handler, ClientData client)
|
||||
void IWebsocketModule.ConnectionInitialized(ServerSide.Server server, WebsocketHandler handler, ClientData client)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using MTSC.Server;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.ServerSide;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
@@ -14,7 +14,7 @@ namespace MTSC.Common.WebSockets.ServerModules
|
||||
/// <param name="server">Server object.</param>
|
||||
/// <param name="handler">Handler currently processing.</param>
|
||||
/// <param name="client">Client object.</param>
|
||||
void ConnectionInitialized(Server.Server server, WebsocketHandler handler, ClientData client);
|
||||
void ConnectionInitialized(ServerSide.Server server, WebsocketHandler handler, ClientData client);
|
||||
/// <summary>
|
||||
/// Handle a received message.
|
||||
/// </summary>
|
||||
@@ -22,13 +22,13 @@ namespace MTSC.Common.WebSockets.ServerModules
|
||||
/// <param name="messageBytes">Bytes of the message.</param>
|
||||
/// <param name="client">Client data.</param>
|
||||
/// <returns>True if no other module should process the message.</returns>
|
||||
bool HandleReceivedMessage(Server.Server server, WebsocketHandler handler, ClientData client, WebsocketMessage receivedMessage);
|
||||
bool HandleReceivedMessage(ServerSide.Server server, WebsocketHandler handler, ClientData client, WebsocketMessage receivedMessage);
|
||||
/// <summary>
|
||||
/// Called when a connection has been closed.
|
||||
/// </summary>
|
||||
/// <param name="server">Server object.</param>
|
||||
/// <param name="handler">Handler currently processing.</param>
|
||||
/// <param name="client">Client object.</param>
|
||||
void ConnectionClosed(Server.Server server, WebsocketHandler handler, ClientData client);
|
||||
void ConnectionClosed(ServerSide.Server server, WebsocketHandler handler, ClientData client);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
using System.Text;
|
||||
|
||||
namespace MTSC.Server.Handlers
|
||||
namespace MTSC.ServerSide.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Broadcast handler.
|
||||
+1
-1
@@ -4,7 +4,7 @@ using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace MTSC.Server.Handlers
|
||||
namespace MTSC.ServerSide.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Handler that encrypts the communication.
|
||||
@@ -5,7 +5,7 @@ using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace MTSC.Server.Handlers
|
||||
namespace MTSC.ServerSide.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Handler for handling server http requests.
|
||||
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
|
||||
namespace MTSC.Server.Handlers
|
||||
namespace MTSC.ServerSide.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for communication handlers.
|
||||
+1
-1
@@ -7,7 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace MTSC.Server.Handlers
|
||||
namespace MTSC.ServerSide.Handlers
|
||||
{
|
||||
public sealed class WebsocketHandler : IHandler
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace MTSC.Server.Resources
|
||||
namespace MTSC.ServerSide.Resources
|
||||
{
|
||||
public interface IResource
|
||||
{
|
||||
@@ -1,8 +1,8 @@
|
||||
using MTSC.Exceptions;
|
||||
using MTSC.Logging;
|
||||
using MTSC.Server.Handlers;
|
||||
using MTSC.Server.Resources;
|
||||
using MTSC.Server.UsageMonitors;
|
||||
using MTSC.ServerSide.Handlers;
|
||||
using MTSC.ServerSide.Resources;
|
||||
using MTSC.ServerSide.UsageMonitors;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
@@ -13,7 +13,7 @@ using System.Security.Authentication;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MTSC.Server
|
||||
namespace MTSC.ServerSide
|
||||
{
|
||||
/// <summary>
|
||||
/// Basic server class to handle TCP connections.
|
||||
@@ -56,7 +56,7 @@ namespace MTSC.Server
|
||||
/// <summary>
|
||||
/// Returns the state of the server.
|
||||
/// </summary>
|
||||
public bool Running { get => running; }
|
||||
public bool Running { get => listener != null; }
|
||||
public bool RequestClientCertificate { get; set; } = true;
|
||||
/// <summary>
|
||||
/// List of clients currently connected to the server.
|
||||
@@ -512,6 +512,8 @@ namespace MTSC.Server
|
||||
}
|
||||
}
|
||||
}
|
||||
listener.Stop();
|
||||
listener = null;
|
||||
}
|
||||
/// <summary>
|
||||
/// Runs the server async.
|
||||
+1
-1
@@ -3,7 +3,7 @@ using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MTSC.Server.UsageMonitors
|
||||
namespace MTSC.ServerSide.UsageMonitors
|
||||
{
|
||||
/// <summary>
|
||||
/// Implementation of <see cref="IServerUsageMonitor"/> that limits CPU usage to a given value.
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MTSC.Server.UsageMonitors
|
||||
namespace MTSC.ServerSide.UsageMonitors
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for server usage monitors.
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
namespace MTSC.Server.UsageMonitors
|
||||
namespace MTSC.ServerSide.UsageMonitors
|
||||
{
|
||||
/// <summary>
|
||||
/// Implementation of <see cref="IServerUsageMonitor"/> that enforces a specified tickrate.
|
||||
Reference in New Issue
Block a user