1
0
Fork 0
Nibriboard/Nibriboard/NibriboardServer.cs

63 lines
1.3 KiB
C#
Raw Normal View History

using System;
2017-01-21 18:13:42 +00:00
using System.Threading.Tasks;
using IotWeb.Server;
using IotWeb.Common.Http;
using Nibriboard.RippleSpace;
2017-01-21 18:13:42 +00:00
using Nibriboard.Client;
namespace Nibriboard
{
public class NibriboardServer
{
private HttpServer httpServer;
2017-01-21 18:13:42 +00:00
private ClientSettings clientSettings;
private RippleSpaceManager planeManager = new RippleSpaceManager();
public readonly int Port = 31586;
public NibriboardServer(int inPort = 31586)
{
Port = inPort;
2017-01-21 18:13:42 +00:00
clientSettings = new ClientSettings() {
WebsocketHost = "localhost",
WebsocketPort = Port,
WebsocketPath = "/RipplespaceLink"
};
// HTTP Server setup
httpServer = new HttpServer(Port);
httpServer.AddHttpRequestHandler(
2017-01-10 19:51:49 +00:00
"/",
new HttpEmbeddedFileHandler("Nibriboard.ClientFiles")
/*new HttpResourceHandler(
2017-01-10 19:51:49 +00:00
Assembly.GetExecutingAssembly(),
"ClientFiles",
"index.html"
)*/
);
2017-01-21 18:13:42 +00:00
httpServer.AddHttpRequestHandler(
"/Settings.json",
new HttpClientSettingsHandler(clientSettings)
);
// Websocket setup
httpServer.AddWebSocketRequestHandler(
2017-01-21 18:13:42 +00:00
clientSettings.WebsocketPath,
new NibriClientManager(clientSettings)
);
}
public async Task Start()
{
2017-01-10 19:51:49 +00:00
httpServer.Start();
Log.WriteLine("[NibriboardServer] Started on port {0}", Port);
await planeManager.StartMaintenanceMonkey();
}
}
}