static void Main(string[] args) { SslConfig sslConfig; TcpConfig tcpConfig = new TcpConfig(true, 5000, 20000); Console.WriteLine("Setting up secure server"); sslConfig = new SslConfig(true, "cert.pfx", "", SslProtocols.Tls12); _webServer = new SimpleWebServer(10000, tcpConfig, 16 * 1024, 3000, sslConfig); _webServer.Start(Constants.GAME_PORT); Console.WriteLine("Server started"); _webServer.onConnect += delegate(int i) { } }
protected static void StartWebServer() { if (ws == null) { X509Certificate2 certificate = new X509Certificate2("certificate.crt", ""); ws = new SimpleWebServer(myBaseUrl.ToString(), certificate); ws.addUrlAction("/my_public_keys.jwks", RespondWithJwks); ws.addUrlAction("/id_token_flow_callback", IdTokenFlowCallback); ws.addUrlAction("/code_flow_callback", CodeFlowCallback); ws.addUrlAction("/request.jwt", RequestUriCallback); ws.addUrlAction("/initiated_login", ThirdPartyInitiatedLoginCallback); ws.Run(); } }
static void Main(string[] args) { _rand = new Random(Environment.TickCount); SslConfig sslConfig; TcpConfig tcpConfig = new TcpConfig(true, 5000, 20000); Console.WriteLine("Setting up secure server"); sslConfig = new SslConfig(true, "cert.pfx", "", SslProtocols.Tls12); _webServer = new SimpleWebServer(10000, tcpConfig, 16 * 1024, 3000, sslConfig); _webServer.Start(Constants.GAME_PORT); Console.WriteLine("Server started"); _webServer.onConnect += WebServerOnConnect; _webServer.onData += WebServerOnData; _webServer.onDisconnect += WebServerOnDisconnect; Timer stateUpdateTimer = new Timer(1f / Constants.SERVER_TICKRATE * 1000); stateUpdateTimer.Elapsed += StateUpdateTimerOnElapsed; stateUpdateTimer.AutoReset = true; stateUpdateTimer.Enabled = true; while (!Console.KeyAvailable) { _webServer.ProcessMessageQueue(); switch (_currentState) { case GameState.Waiting: { if (_connectedIds.Count >= 2) { _currentState = GameState.Begin; SendStateUpdate(_currentState); } break; } case GameState.Begin: { break; } } } Console.WriteLine("Closing server"); _webServer.Stop(); }
// First, we set up the webserver with the html/css/js files we have in the public folder of this project. // We used blockly from https://developers.google.com/blockly/ (amazing frameworks and super easy to use). // We created a few custom blocks (inspired by the ones used by the BBC micro:bit, check it out at https://www.microbit.co.uk/). // You can go and modify the blocks and the JavaScript translations. Check out public\index.html, public\blockly\blocks-custom.js // and public\blockly\javascript-custom.js. // Then we add handlers for the "runcode" and "stopcode" POSTs, which leverage the Chakra JavaScript engine to execute // the JavaScript code translated by blockly. // The JavaScript code uses a few helper functions from the IoTBlocklyHelper WinRT library (which is added applocal to // this UWP Background Application). // Notice that most of the blocks require the Raspberry Pi Sense Hat (https://www.raspberrypi.org/products/sense-hat/). // And then we start listening on port 8024 and start serving pages: Use your favorite browser to browse to your // Raspberry Pi IP address:8024 and you can start coding. public async void Run(IBackgroundTaskInstance taskInstance) { deferral = taskInstance.GetDeferral(); var publicFolder = await localFolder.GetFolderAsync("public"); // await StartMostRecentScript(); // problematic if JS Corrupt when stored var server = new SimpleWebServer(); // include last saved script server.Get( "/", async(req, res) => { await SimpleWebServer.WriteStaticResponseFilter(req, res, publicFolder, IncludeLastScript); }); server.Get( "/index.html", async(req, res) => { await SimpleWebServer.WriteStaticResponseFilter(req, res, publicFolder, IncludeLastScript); }); server.UseStatic(publicFolder); server.Post("/runcode", async(req, res) => { var code = req.GetValue("code"); var blocks = req.GetValue("blocks"); if (!String.IsNullOrEmpty(code)) { // await SaveMostRecentScript(code, blocks); host.RunScriptAsync(code); } await res.RedirectAsync(".."); }); server.Post("/stopcode", async(req, res) => { host.HaltScript(); await res.RedirectAsync(".."); }); try { server.Listen(8024); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } }
static void Main(string[] args) { SslConfig sslConfig; TcpConfig tcpConfig = new TcpConfig(true, 5000, 20000); Console.WriteLine("Setting up secure server"); sslConfig = new SslConfig(true, "cert.pfx", "", SslProtocols.Tls12); _webServer = new SimpleWebServer(10000, tcpConfig, 16 * 1024, 3000, sslConfig); _webServer.Start(Constants.GAME_PORT); Console.WriteLine("Server started"); _webServer.onConnect += delegate(int i) { Console.WriteLine($"Client {i} joined, sending hello"); byte[] buff = System.Text.Encoding.UTF8.GetBytes("Hello from server"); _webServer.SendOne(i, "Hello from server"); }; }
public void CanHandleRobotsTxt() { using (SimpleWebServer server = new SimpleWebServer()) { List<PropertyBag> propertyBags = new List<PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.txt") .Do((crawler, bag) => { propertyBags.Add(bag); }) .MaxCrawlCount(1) .Robots("/Content/Robots.txt") .Download() .AddLoggerStep() .Run(); Assert.AreEqual(propertyBags.Count, 1); var allowed = (bool) propertyBags[0][RobotsPipelineStep.RobotsIsPathAllowedPropertyName].Value; Assert.AreEqual(false, allowed); } }
public void CanHandleRobotsTxt() { using (SimpleWebServer server = new SimpleWebServer()) { List <PropertyBag> propertyBags = new List <PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.txt") .Do((crawler, bag) => { propertyBags.Add(bag); }) .MaxCrawlCount(1) .Robots("/Content/Robots.txt") .Download() .AddLoggerStep() .Run(); Assert.AreEqual(propertyBags.Count, 1); var allowed = (bool)propertyBags[0][RobotsPipelineStep.RobotsIsPathAllowedPropertyName].Value; Assert.AreEqual(false, allowed); } }
static void Main(string[] args) { string baseDir = GetBaseDirectory(); FileQueryDispatcher files = new FileQueryDispatcher(Path.Combine(baseDir, @"..\..\www"), "/"); DefaultQueryDispatcher root = new DefaultQueryDispatcher(Path.Combine(baseDir, @"..\..\www")); SimpleWebServer server = new SimpleWebServer(new ConsoleLogger()); server.Dispatchers.Add(root); server.Dispatchers.Add(files); server.Dispatchers.Add(new DemoData()); server.Dispatchers.Add(new PageNotFoundQueryDispatcher()); server.Port = 8080; server.IPAddress = IPAddress.Any; server.Start(); Console.ReadLine(); server.Stop(); }
private IEnumerator Start() { var tcpConfig = new TcpConfig(true, 5000, 5000); server = new SimpleWebServer(5000, tcpConfig, 32000, 5000, default); server.Start(7776); server.onConnect += (id) => { connection = true; Debug.Log($"New Client connected, id:{id}"); }; server.onDisconnect += (id) => Debug.Log($"Client disconnected, id:{id}"); server.onData += OnData; server.onError += (id, exception) => Debug.Log($"Error because of Client, id:{id}, Error:{exception}"); yield return(new WaitUntil(() => connection)); for (int i = 1; i < 200; i++) { yield return(Send(i * 1000)); } }
public void CanDownloadWith() { using (SimpleWebServer server = new SimpleWebServer()) { List<PropertyBag> downloads = new List<PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.html") .FlurlDownload() .MaxCrawlCount(1) .AddLoggerStep() .Do((crawler, bag) => { downloads.Add(bag); }) .Run(); var flurlProperties = downloads[0][FlurlDownloadPipelineStep.FlurlHttpCallPropertyName].Value; Assert.IsNotNull(flurlProperties); } }
public void CanDownloadWith() { using (SimpleWebServer server = new SimpleWebServer()) { List <PropertyBag> downloads = new List <PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.html") .FlurlDownload() .MaxCrawlCount(1) .AddLoggerStep() .Do((crawler, bag) => { downloads.Add(bag); }) .Run(); var flurlProperties = downloads[0][FlurlDownloadPipelineStep.FlurlHttpCallPropertyName].Value; Assert.IsNotNull(flurlProperties); } }
public void Test() { using (SimpleWebServer server = new SimpleWebServer()) { List<PropertyBag> propertyBags = new List<PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.txt") .Do((crawler, bag) => { propertyBags.Add(bag); }) .MaxCrawlCount(1) .Download() .TextProcessor() .DetectLanguage() .AddLoggerStep() .Run(); Assert.Greater(propertyBags.Count, 1); string language = propertyBags[0][GoogleLanguageDetection.LanguagePropertyName].Value as string; Assert.IsNotNull(language); Assert.AreEqual("eng", language); } }
public void Test() { using (SimpleWebServer server = new SimpleWebServer()) { List <PropertyBag> propertyBags = new List <PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.txt") .Do((crawler, bag) => { propertyBags.Add(bag); }) .MaxCrawlCount(1) .Download() .TextProcessor() .DetectLanguage() .AddLoggerStep() .Run(); Assert.Greater(propertyBags.Count, 1); string language = propertyBags[0][GoogleLanguageDetection.LanguagePropertyName].Value as string; Assert.IsNotNull(language); Assert.AreEqual("eng", language); } }
public void CanExtractLinksFromText() { using (SimpleWebServer server = new SimpleWebServer()) { List<PropertyBag> collectedLinks = new List<PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.txt") .Do((crawler, bag) => { collectedLinks.Add(bag); }) .MaxCrawlCount(1) .Download() .TextProcessor() .AddLoggerStep() .Run(); Assert.Greater(collectedLinks.Count, 1); } }
public void CanExtractLinksFromText() { using (SimpleWebServer server = new SimpleWebServer()) { List <PropertyBag> collectedLinks = new List <PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.txt") .Do((crawler, bag) => { collectedLinks.Add(bag); }) .MaxCrawlCount(1) .Download() .TextProcessor() .AddLoggerStep() .Run(); Assert.Greater(collectedLinks.Count, 1); } }
static void Main(string[] args) { SslConfig sslConfig; TcpConfig tcpConfig = new TcpConfig(true, 5000, 20000); Console.WriteLine("Setting up secure server"); sslConfig = new SslConfig(true, "cert.pfx", "", SslProtocols.Tls12); _webServer = new SimpleWebServer(10000, tcpConfig, 16*1024, 3000, sslConfig); _webServer.Start(Constants.GAME_PORT); Console.WriteLine("Server started"); _webServer.onConnect += WebServerOnConnect; _webServer.onData += WebServerOnData; _webServer.onDisconnect += WebServerOnDisconnect; while (!Console.KeyAvailable) { _webServer.ProcessMessageQueue(); } Console.WriteLine("Closing server"); _webServer.Stop(); }
private async Task ServerServer() { try { // create server instance var tcpConfig = new TcpConfig(noDelay: false, sendTimeout: 5000, receiveTimeout: 20000); var server = new SimpleWebServer(5000, tcpConfig, ushort.MaxValue, 5000, new SslConfig()); // listen for events server.onConnect += (id) => Debug.Log($"New Client connected, id:{id}"); server.onDisconnect += (id) => Debug.Log($"Client disconnected, id:{id}"); server.onData += (id, data) => { Debug.Log($"Data from Client, id:{id}, {BitConverter.ToString(data.Array, data.Offset, data.Count)}"); // pong server.SendOne(id, data); }; server.onError += (id, exception) => Debug.Log($"Error because of Client, id:{id}, Error:{exception}"); // start server listening on port 7777 server.Start(7777); while (true) { server.ProcessMessageQueue(); await Task.Yield(); if (token.stop) { break; } } token = null; } catch (Exception e) { Debug.LogException(e); } }
public void CanExtractTitleFromHtml() { using (SimpleWebServer server = new SimpleWebServer()) { PropertyBag propertyBag = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.html") .Download() .MaxCrawlCount(1) .HtmlProcessor() .AddLoggerStep() .Do((crawler, bag) => { propertyBag = bag; }) .Run(); Assert.IsNotNull(propertyBag); Assert.IsNotNull(propertyBag.Title); Assert.AreEqual("NCrawler - Home", propertyBag.Title); } }
public void ShouldExtractTextFromWord() { using (SimpleWebServer server = new SimpleWebServer()) { string extractedText = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/Georgia_opposition_NATO-Eng-F.doc") .Download() .TextExtractProcessor() .AddLoggerStep() .Where((crawler, bag) => { extractedText = bag.Text; return(false); }) .Run(); Assert.IsNotNull(extractedText); var containsExpectedText = extractedText.Contains("Georgian Parliamentary Faction"); Assert.IsTrue(containsExpectedText, "Should contain expected text"); } }
public void ShouldExtractTextFromWord() { using (SimpleWebServer server = new SimpleWebServer()) { string extractedText = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/Georgia_opposition_NATO-Eng-F.doc") .Download() .TextExtractProcessor() .AddLoggerStep() .Where((crawler, bag) => { extractedText = bag.Text; return false; }) .Run(); Assert.IsNotNull(extractedText); var containsExpectedText = extractedText.Contains("Georgian Parliamentary Faction"); Assert.IsTrue(containsExpectedText, "Should contain expected text"); } }
public void ShouldExtractTextFromExcel() { using (SimpleWebServer server = new SimpleWebServer()) { string extractedText = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/SampleData.xls") .Download() .TextExtractProcessor() .AddLoggerStep() .Where((crawler, bag) => { extractedText = bag.Text; return false; }) .Run(); Assert.IsNotNull(extractedText); var containsExpectedText = extractedText.Contains("Contextures Recommends"); Assert.IsTrue(containsExpectedText, "Should contain expected text"); } }
public void ShouldExtractTextFromExcel() { using (SimpleWebServer server = new SimpleWebServer()) { string extractedText = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/SampleData.xls") .Download() .TextExtractProcessor() .AddLoggerStep() .Where((crawler, bag) => { extractedText = bag.Text; return(false); }) .Run(); Assert.IsNotNull(extractedText); var containsExpectedText = extractedText.Contains("Contextures Recommends"); Assert.IsTrue(containsExpectedText, "Should contain expected text"); } }
public void CanExtractTitleFromText() { using (SimpleWebServer server = new SimpleWebServer()) { PropertyBag propertyBag = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.txt") .Download() .MaxCrawlCount(1) .TextProcessor() .AddLoggerStep() .Do((crawler, bag) => { propertyBag = bag; }) .Run(); Assert.IsNotNull(propertyBag); Assert.IsNotNull(propertyBag.Title); Assert.AreEqual(propertyBag.Step.Uri.ToString(), propertyBag.Title); } }
// First, we set up the webserver with the html/css/js files we have in the public folder of this project. // We used blockly from https://developers.google.com/blockly/ (amazing frameworks and super easy to use). // We created a few custom blocks (inspired by the ones used by the BBC micro:bit, check it out at https://www.microbit.co.uk/). // You can go and modify the blocks and the JavaScript translations. Check out public\index.html, public\blockly\blocks-custom.js // and public\blockly\javascript-custom.js. // Then we add handlers for the "runcode" and "stopcode" POSTs, which leverage the Chakra JavaScript engine to execute // the JavaScript code translated by blockly. // The JavaScript code uses a few helper functions from the IoTBlocklyHelper WinRT library (which is added applocal to // this UWP Background Application). // Notice that most of the blocks require the Raspberry Pi Sense Hat (https://www.raspberrypi.org/products/sense-hat/). // And then we start listening on port 8000 and start serving pages: Use your favorite browser to browse to your // Raspberry Pi IP address:8000 and you can start coding. public async void Run(IBackgroundTaskInstance taskInstance) { deferral = taskInstance.GetDeferral(); var publicFolder = await localFolder.GetFolderAsync("public"); await StartMostRecentScript(); var server = new SimpleWebServer(); // include last saved script server.Get( "/", async(req, res) => { await SimpleWebServer.WriteStaticResponseFilter(req, res, publicFolder, IncludeLastScript); }); server.Get( "/index.html", async(req, res) => { await SimpleWebServer.WriteStaticResponseFilter(req, res, publicFolder, IncludeLastScript); }); server.UseStatic(publicFolder); server.Post("/runcode", async(req, res) => { var code = req.GetValue("code"); var blocks = req.GetValue("blocks"); if (!String.IsNullOrEmpty(code)) { await SaveMostRecentScript(code, blocks); host.runScriptAsync(code); } await res.RedirectAsync(".."); }); server.Post("/stopcode", async(req, res) => { host.haltScript(); await res.RedirectAsync(".."); }); server.Listen(8000); }
public void CanDownload() { using (SimpleWebServer server = new SimpleWebServer()) { List <PropertyBag> downloads = new List <PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.html") .FlurlDownload() .MaxCrawlCount(1) .AddLoggerStep() .Do((crawler, bag) => { downloads.Add(bag); }) .Run(); Assert.AreEqual(1, downloads.Count); Assert.IsNotNull(downloads[0].Response); Assert.GreaterOrEqual(downloads[0].Response.Length, new FileInfo(Path.Combine( new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName ?? string.Empty, "Content\\NCrawler - Home.html")).Length); } }
public void CanExtractTextFromText() { using (SimpleWebServer server = new SimpleWebServer()) { PropertyBag propertyBag = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.txt") .MaxCrawlCount(1) .Download() .TextProcessor() .AddLoggerStep() .Do((crawler, bag) => { propertyBag = bag; }) .Run(); Assert.IsNotNull(propertyBag); Assert.IsNotNull(propertyBag.Text); var containsExpectedText = propertyBag.Text.Contains("NCrawler - Home"); Assert.IsTrue(containsExpectedText, "Should contain expected text"); } }
public void CanExtractTextFromHtml() { using (SimpleWebServer server = new SimpleWebServer()) { PropertyBag propertyBag = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.html") .MaxCrawlCount(1) .Download() .HtmlProcessor() .AddLoggerStep() .Do((crawler, bag) => { propertyBag = bag; }) .Run(); Assert.IsNotNull(propertyBag); Assert.IsNotNull(propertyBag.Text); var containsExpectedText = propertyBag.Text.Contains("ncrawler - home"); Assert.IsTrue(containsExpectedText, "Should contain expected text"); } }
public void CanDownload() { using (SimpleWebServer server = new SimpleWebServer()) { List<PropertyBag> downloads = new List<PropertyBag>(); new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.html") .FlurlDownload() .MaxCrawlCount(1) .AddLoggerStep() .Do((crawler, bag) => { downloads.Add(bag); }) .Run(); Assert.AreEqual(1, downloads.Count); Assert.IsNotNull(downloads[0].Response); Assert.GreaterOrEqual(downloads[0].Response.Length, new FileInfo(Path.Combine( new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName ?? string.Empty, "Content\\NCrawler - Home.html")).Length); } }
public void CanExtractMetaDataFromHtml() { using (SimpleWebServer server = new SimpleWebServer()) { PropertyBag propertyBag = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.html") .Download() .MaxCrawlCount(1) .HtmlProcessor() .AddLoggerStep() .Do((crawler, bag) => { propertyBag = bag; }) .Run(); Assert.IsNotNull(propertyBag); Assert.IsNotNull(propertyBag["Meta"].Value); string[] metaData = (string[])propertyBag["Meta"].Value; var containeMetaDataEntry = metaData.Any(x => x.Equals("twitter:title: NCrawler")); Assert.IsTrue(containeMetaDataEntry, "Should contain meta data"); } }
public void CanExtractMetaDataFromHtml() { using (SimpleWebServer server = new SimpleWebServer()) { PropertyBag propertyBag = null; new CrawlerConfiguration() .CrawlSeed(server.BaseUrl + "/Content/NCrawler - Home.html") .Download() .MaxCrawlCount(1) .HtmlProcessor() .AddLoggerStep() .Do((crawler, bag) => { propertyBag = bag; }) .Run(); Assert.IsNotNull(propertyBag); Assert.IsNotNull(propertyBag["Meta"].Value); string[] metaData = (string[]) propertyBag["Meta"].Value; var containeMetaDataEntry = metaData.Any(x => x.Equals("twitter:title: NCrawler")); Assert.IsTrue(containeMetaDataEntry, "Should contain meta data"); } }
static void Main(string[] args) { _rand = new Random(Environment.TickCount); SslConfig sslConfig; TcpConfig tcpConfig = new TcpConfig(true, 5000, 20000); Console.WriteLine("Setting up secure server"); sslConfig = new SslConfig(true, "cert.pfx", "", SslProtocols.Tls12); _webServer = new SimpleWebServer(10000, tcpConfig, 16 * 1024, 3000, sslConfig); _webServer.Start(Constants.GAME_PORT); Console.WriteLine("Server started"); _webServer.onConnect += WebServerOnConnect; _webServer.onData += WebServerOnData; _webServer.onDisconnect += WebServerOnDisconnect; Timer stateUpdateTimer = new Timer(1f / Constants.SERVER_TICKRATE * 1000); stateUpdateTimer.Elapsed += StateUpdateTimerOnElapsed; stateUpdateTimer.AutoReset = true; stateUpdateTimer.Enabled = true; while (!Console.KeyAvailable) { _webServer.ProcessMessageQueue(); // GUARD, DONT DO STATE STUFF IF WE ARE WAITING if (_waitingOnStateTimer) { continue; } switch (_currentState) { case GameState.Waiting: { if (_connectedIds.Count >= 2) { _currentState = GameState.Begin; SendStateUpdate(_currentState); } break; } case GameState.Begin: { // Set timer to go to builder state Timer beginTimer = new Timer(SECONDS_WAITING_IN_BEGIN * 1000); beginTimer.AutoReset = false; beginTimer.Start(); _waitingOnStateTimer = true; beginTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; _movedObjects = new List <ushort>(); _currentState = GameState.Builder; SendStateUpdate(_currentState); }; break; } case GameState.Builder: { // Set timer to go to builder state Timer buildTimer = new Timer(SECONDS_WAITING_IN_BUILD * 1000); buildTimer.AutoReset = false; buildTimer.Start(); _waitingOnStateTimer = true; buildTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; // Reset everyones guesses foreach (PlayerData playerData in _playerDatas.Values) { playerData.guesses.Clear(); } _currentState = GameState.Search; SendStateUpdate(_currentState); }; break; } case GameState.Search: { // Set timer to go to scoring state Timer searchTimer = new Timer(SECONDS_WAITING_IN_SEARCH * 1000); searchTimer.AutoReset = false; searchTimer.Start(); _waitingOnStateTimer = true; searchTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; _currentState = GameState.Scoring; SendStateUpdate(_currentState); }; break; } case GameState.Scoring: { foreach (var playerPair in _playerDatas) { } } } } Console.WriteLine("Closing server"); _webServer.Stop(); }
static void Main(string[] args) { _rand = new Random(Environment.TickCount); SslConfig sslConfig; TcpConfig tcpConfig = new TcpConfig(true, 5000, 20000); Console.WriteLine("Setting up secure server"); sslConfig = new SslConfig(true, "cert.pfx", "", SslProtocols.Tls12); _webServer = new SimpleWebServer(10000, tcpConfig, 16 * 1024, 3000, sslConfig); _webServer.Start(Constants.GAME_PORT); Console.WriteLine("Server started"); _webServer.onConnect += WebServerOnConnect; _webServer.onData += WebServerOnData; _webServer.onDisconnect += WebServerOnDisconnect; Timer stateUpdateTimer = new Timer(1f / Constants.SERVER_TICKRATE * 1000); stateUpdateTimer.Elapsed += StateUpdateTimerOnElapsed; stateUpdateTimer.AutoReset = true; stateUpdateTimer.Enabled = true; while (!Console.KeyAvailable) { _webServer.ProcessMessageQueue(); // GUARD, DONT DO STATE STUFF IF WE ARE WAITING if (_waitingOnStateTimer) { continue; } switch (_currentState) { case GameState.Waiting: { if (_handshakenClientCount >= 2 && _connectedIds.Count >= 2) { _currentState = GameState.Begin; SendStateUpdate(_currentState); } break; } case GameState.Begin: { // Set timer to go to builder state beginTimer = new Timer(SECONDS_WAITING_IN_BEGIN * 1000); beginTimer.AutoReset = false; beginTimer.Start(); _waitingOnStateTimer = true; beginTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; _movedObjects = new Dictionary <ushort, Tuple <ushort, ushort> >(); _currentState = GameState.Builder; SendStateUpdate(_currentState); }; break; } case GameState.Builder: { // Set timer to go to builder state buildTimer = new Timer(SECONDS_WAITING_IN_BUILD * 1000); buildTimer.AutoReset = false; buildTimer.Start(); _waitingOnStateTimer = true; buildTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; // Reset everyones guesses foreach (PlayerData playerData in _playerDatas.Values) { playerData.guesses.Clear(); } // Make sure builder actually moved something, // if he didnt, goto scoring and give everyone else a point if (_movedObjects.Count > 0) { _currentState = GameState.Search; } else { foreach (PlayerData data in _playerDatas.Values) { if (data.id != _builderId) { data.points += 1; } _playerDatas[_builderId].points -= (ushort)_handshakenClientCount; } _currentState = GameState.Scoring; } SendStateUpdate(_currentState); }; break; } case GameState.Search: { // Set timer to go to scoring state searchTimer = new Timer(SECONDS_WAITING_IN_SEARCH * 1000); searchTimer.AutoReset = false; searchTimer.Start(); _waitingOnStateTimer = true; searchTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; _currentState = GameState.Scoring; SendStateUpdate(_currentState); }; break; } case GameState.Scoring: { // Set timer to wait for points to come in from clients scoringTimer = new Timer(SECONDS_WAITING_IN_SCORING * 1000); scoringTimer.AutoReset = false; scoringTimer.Start(); _waitingOnStateTimer = true; scoringTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; // Tell everyone everyones scores _bitBuffer.Clear(); _bitBuffer.AddByte(7); _bitBuffer.AddUShort((ushort)_playerDatas.Count); foreach (PlayerData data in _playerDatas.Values) { _bitBuffer.AddUShort(data.id); _bitBuffer.AddShort(data.points); } _bitBuffer.ToArray(_buffer); _webServer.SendAll(_connectedIds, new ArraySegment <byte>(_buffer, 0, 3 + 4 * _playerDatas.Count)); if (_handshakenClientCount >= 2 && _connectedIds.Count >= 2) { _currentState = GameState.Begin; } else { _currentState = GameState.Waiting; } SendStateUpdate(_currentState); }; break; } } } Console.WriteLine("Closing server"); _webServer.Stop(); }
static void Main(string[] args) { _rand = new Random(Environment.TickCount); SslConfig sslConfig; TcpConfig tcpConfig = new TcpConfig(true, 5000, 20000); Console.WriteLine("Setting up secure server"); sslConfig = new SslConfig(true, "cert.pfx", "", SslProtocols.Tls12); _webServer = new SimpleWebServer(10000, tcpConfig, 16 * 1024, 3000, sslConfig); _webServer.Start(Constants.GAME_PORT); Console.WriteLine("Server started"); _webServer.onConnect += WebServerOnConnect; _webServer.onData += WebServerOnData; _webServer.onDisconnect += WebServerOnDisconnect; Timer stateUpdateTimer = new Timer(1f / Constants.SERVER_TICKRATE * 1000); stateUpdateTimer.Elapsed += StateUpdateTimerOnElapsed; stateUpdateTimer.AutoReset = true; stateUpdateTimer.Enabled = true; while (!Console.KeyAvailable) { _webServer.ProcessMessageQueue(); // GUARD, DONT DO STATE STUFF IF WE ARE WAITING if (_waitingOnStateTimer) { continue; } switch (_currentState) { case GameState.Waiting: { if (_connectedIds.Count >= 2) { _currentState = GameState.Begin; SendStateUpdate(_currentState); } break; } case GameState.Begin: { // Set timer to go to builder state beginTimer = new Timer(SECONDS_WAITING_IN_BEGIN * 1000); beginTimer.AutoReset = false; beginTimer.Start(); _waitingOnStateTimer = true; beginTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; _movedObjects = new List <ushort>(); _currentState = GameState.Builder; SendStateUpdate(_currentState); }; break; } case GameState.Builder: { // Set timer to go to builder state buildTimer = new Timer(SECONDS_WAITING_IN_BUILD * 1000); buildTimer.AutoReset = false; buildTimer.Start(); _waitingOnStateTimer = true; buildTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; // Reset everyones guesses foreach (PlayerData playerData in _playerDatas.Values) { playerData.guesses.Clear(); } _currentState = GameState.Search; SendStateUpdate(_currentState); }; break; } case GameState.Search: { // Set timer to go to scoring state searchTimer = new Timer(SECONDS_WAITING_IN_SEARCH * 1000); searchTimer.AutoReset = false; searchTimer.Start(); _waitingOnStateTimer = true; searchTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _waitingOnStateTimer = false; _currentState = GameState.Scoring; SendStateUpdate(_currentState); }; break; } case GameState.Scoring: { short builderPoints = 0; _bitBuffer.Clear(); _bitBuffer.AddByte(7); _bitBuffer.AddUShort((ushort)_playerDatas.Count); foreach (var playerData in _playerDatas.Values) { // GUARD, DON'T SCORE THE BUILDER THIS WAY if (playerData.id == _builderId) { continue; } // Free points for objects builder couldnt move // A point for a correct guess, minus point for a wrong guess int numCorrect = _movedObjects.Distinct().Intersect(playerData.guesses).Count(); int newPoints = (numCorrect * 2) - playerData.guesses.Count + (NUMBER_OF_MOVEABLE_OBJECTS - _movedObjects.Count); playerData.points += (short)newPoints; // Builder gets a point for each player who couldnt find any differences if (numCorrect == 0) { builderPoints += 1; } _bitBuffer.AddUShort(playerData.id); _bitBuffer.AddShort(playerData.points); } _playerDatas[_builderId].points += builderPoints; _bitBuffer.AddUShort((ushort)_builderId); _bitBuffer.AddShort(_playerDatas[_builderId].points); _bitBuffer.ToArray(_buffer); _webServer.SendAll(_connectedIds, new ArraySegment <byte>(_buffer, 0, 3 + 2 * _playerDatas.Count)); if (_connectedIds.Count >= 2) { _currentState = GameState.Begin; } else { _currentState = GameState.Waiting; } SendStateUpdate(_currentState); break; } } } Console.WriteLine("Closing server"); _webServer.Stop(); }
static SilverlightCodedUITestBase() { SimpleWebServer.Initialise(); }
static void Main(string[] args) { _rand = new Random(Environment.TickCount); SslConfig sslConfig; TcpConfig tcpConfig = new TcpConfig(true, 5000, 20000); Console.WriteLine("Setting up secure server"); sslConfig = new SslConfig(true, "cert.pfx", "", SslProtocols.Tls12); _webServer = new SimpleWebServer(10000, tcpConfig, 16 * 1024, 3000, sslConfig); _webServer.Start(Constants.GAME_PORT); Console.WriteLine("Server started"); _webServer.onConnect += WebServerOnConnect; _webServer.onData += WebServerOnData; _webServer.onDisconnect += WebServerOnDisconnect; Timer stateUpdateTimer = new Timer(1f / Constants.SERVER_TICKRATE * 1000); stateUpdateTimer.Elapsed += StateUpdateTimerOnElapsed; stateUpdateTimer.AutoReset = true; stateUpdateTimer.Enabled = true; while (!Console.KeyAvailable) { _webServer.ProcessMessageQueue(); if (_waitingOnStateTimer) { continue; } switch (_currentState) { case GameState.Waiting: { if (_connectedIds.Count >= 2) { _currentState = GameState.Begin; SendStateUpdate(_currentState); } break; } case GameState.Begin: { // Set timer to go to builder state Timer beginTimer = new Timer(SECONDS_WAITING_IN_BEGIN * 1000); beginTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _currentState = GameState.Builder; SendStateUpdate(_currentState); }; break; } case GameState.Builder: { // Set timer to go to builder state Timer buildTimer = new Timer(SECONDS_WAITING_IN_BUILD * 1000); buildTimer.Elapsed += delegate(Object source, ElapsedEventArgs e) { _currentState = GameState.Search; SendStateUpdate(_currentState); }; break; } } } Console.WriteLine("Closing server"); _webServer.Stop(); }
static void Main(string[] args) { logger.Info("Starting!"); TheSockets sockets = new TheSockets(); SimpleWebServer nws = new SimpleWebServer(4567); nws.Start(); InfluxConnection c = new InfluxConnection(); c.URL = "http://localhost:8086/"; // HttpInfluxDB db = new HttpInfluxDB(c); // db.CreateDatabase("influxdays"); // sockets.influx = new HttpInfluxWriter(db, "influxdays", 50000); foreach (var d in HidSharp.DeviceList.Local.GetHidDevices()) { logger.Info("DEVICE: " + d.DevicePath); try { logger.Info(" > " + d.GetFriendlyName()); } catch { } } DeviceWatcher watcherSide = null; DeviceWatcher watcherWheel = null; HidSharp.HidDevice dev = DeviceWatcher.find("Saitek Side Panel Control Deck"); if (dev != null) { watcherSide = new DeviceWatcher("panel_", dev, sockets); } dev = DeviceWatcher.find("Saitek Heavy Eqpt. Wheel & Pedal"); if (dev != null) { watcherWheel = new DeviceWatcher("wheel_", dev, sockets); } WebSocketServer server = new WebSocketServer("ws://0.0.0.0:8181"); server.RestartAfterListenError = true; server.Start(socket => { socket.OnOpen = () => { sockets.open.Add(socket); logger.Info("WebSocket Open! " + sockets.open.Count); if (watcherSide != null) { watcherSide.broadcast(); } if (watcherWheel != null) { watcherWheel.broadcast(); } }; socket.OnClose = () => { sockets.open.Remove(socket); logger.Info("WebSocket Remove! " + sockets.open.Count); }; socket.OnMessage = message => logger.Info("WebSocket: " + message); }); while (true) { var x = Console.ReadLine(); Console.WriteLine("ECHO: " + x); } }
public static void BeforeScenario() { webServer = new SimpleWebServer(Configuration.ServerPort); Browser.Current = new FirefoxDriver(); }
public static void start(int port) { do { var tcpClient = SimpleWebServer.wait(port); Task.Factory.StartNew( () => { var networkStream = tcpClient.GetStream(); var requestBuff = new byte[4096]; var requestResource = ""; try { networkStream.Read(requestBuff, 0, 4096); } catch { return; } try { var requestString = System.Text.Encoding.UTF8.GetString(requestBuff); var requestLines = requestString.Replace("\r", "").Split((char)10); var requestLine = (String)requestLines.First(); var requestParams = requestLine.Split(" "[0]); requestResource = requestParams[1]; } catch { return; } var existing = resources.SingleOrDefault(x => x.resource == requestResource); if (existing == null) { Task.Factory.StartNew(() => { var responseBuffer = System.Text.Encoding.UTF8.GetBytes("HTTP/1.0 404 Not Found\r\n\r\n"); networkStream.Write(responseBuffer, 0, responseBuffer.Length); tcpClient.Close(); return; }); } else { Task.Factory.StartNew(() => { var responseBytes = new List <byte>(); responseBytes.AddRange(System.Text.Encoding.UTF8.GetBytes("HTTP/1.0 200 OK\r\n\r\n").ToArray()); var responseObject = existing.handler.Invoke(requestBuff); byte[] contentBuffer; if (responseObject.GetType() == typeof(String)) { contentBuffer = System.Text.Encoding.UTF8.GetBytes((String)responseObject); } else { contentBuffer = (Byte[])responseObject; } responseBytes.AddRange(contentBuffer); var responseBuffer = responseBytes.ToArray(); networkStream.Write(responseBuffer, 0, responseBuffer.Length); tcpClient.Close(); return; }); } }); } while (true); }