static void Main() { FleckLog.Level = LogLevel.Error; var renderers = new ConcurrentDictionary<IWebSocketConnection, IRenderer>(); var proxyRenderer = new ProxyRenderer(); proxyRenderer.AddRenderer( new ConsoleRenderer()); var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://localhost:8080/websession"); server.Start(socket => { socket.OnOpen = () => { allSockets.Add(socket); renderers[socket] = new WebRenderer(socket); proxyRenderer.AddRenderer(renderers[socket]); if (allSockets.Count == 1) { var size = new Size(10, 15); var dto = new InitMessageDto(new SizeDto(size)); socket.Send(dto.ToJson()); var engine = new GameEngine(size, new ConsoleInputListener(), proxyRenderer); engine.Start(); } else { var size = new Size(10, 15); var dto = new InitMessageDto(new SizeDto(size)); socket.Send(dto.ToJson()); } }; socket.OnClose = () => { allSockets.Remove(socket); proxyRenderer.RemoveRenderer(renderers[socket]); IRenderer toRemove; renderers.TryRemove(socket, out toRemove); }; socket.OnMessage = message => { //Console.WriteLine(message); //allSockets.ToList().ForEach(s => s.Send("Echo: " + message)); }; }); while (true) { Thread.Sleep(1000); } // Console.ReadLine(); }
/// <summary> /// The start event handler. /// </summary> /// <param name="args">The arguments.</param> protected override void OnStart(string[] args) { this.webServer = new SoluiNetWebServer(); this.webServer.HandleRequest += (webRequest, webArgs) => { if (webRequest.Method == HttpMethod.Get) { if (webRequest.Route.StartsWith("/favicon.ico", StringComparison.InvariantCulture)) { return(new Core.Web.Communication.WebResponse( this.GetEmbeddedResourceContentStream("favicon.ico", string.Empty), "image/x-icon", Encoding.UTF8, true)); } else if (webRequest.Route.StartsWith("/Status", StringComparison.InvariantCulture)) { return(new Core.Web.Communication.WebResponse( WebRenderer.RenderPage(string.Format(CultureInfo.InvariantCulture, "Status: {0}\r\nVersion: {1}", "OK", this.GetType().Assembly.GetName().Version.ToString())), Encoding.UTF8)); } else { return(new Core.Web.Communication.WebResponse(WebRenderer.RenderPage("not found"), Encoding.UTF8) { StatusCode = System.Net.HttpStatusCode.NotFound }); } } return(new Core.Web.Communication.WebResponse(WebRenderer.RenderPage("no supported method"), Encoding.UTF8) { StatusCode = System.Net.HttpStatusCode.MethodNotAllowed }); }; this.webServer.Start(); }
public Program() { client = new WebClient(); renderer = new WebRenderer(client, finishedLoadingImages); client.LoadImages(renderer); Console.WriteLine("hi"); int index = 0; Document.OnKeypress = (e) => { index = index == 0 ? 1 : 0; var i = 0; foreach (var screen in client.ScreenManager.Screens) { if (i == index) { client.ScreenManager.ChangeScreen(screen); break; } i++; } }; }
public WebRendererInteropMethods(WebRenderer renderer, JsonSerializerOptions jsonOptions, JSComponentInterop jsComponentInterop) { _renderer = renderer; _jsonOptions = jsonOptions; _jsComponentInterop = jsComponentInterop; }
protected (string html, List <string> linkList) GetMultiResultBySelector(string link, string selector, string selectorAttributeForValue, SiteResultType resultType, bool resultLinksAreRelative, bool useProxy) { IRequester requester = new WebRenderer(); var retryCount = 0; string html = null; while (retryCount < MaxRetry) { WebProxy proxy = null; if (useProxy) { proxy = Proxier.GetProxy(); } Logger.Log( proxy == null ? $"Fetch: {resultType} | Retry: {retryCount} | Link: {link}" : $"Fetch: {resultType} | Proxy: {proxy.Address.Host}:{proxy.Address.Port} | Retry: {retryCount} | Link: {link}", LogType.Log); bool isSuccessful; (html, isSuccessful) = requester.DownloadHtml(link, SitePageType, SiteSignature, proxy); if (!isSuccessful) { retryCount++; continue; } break; } if (string.IsNullOrWhiteSpace(html)) { return(null, null); } var doc = new HtmlDocument(); doc.LoadHtml(html); var linkNodes = doc.DocumentNode.SelectNodes(selector); if (linkNodes == null) { Logger.Log($"Empty {resultType} Nodes: {link}", LogType.Error); Console.WriteLine( $@"{SavePath}/Debug/{SiteUri.Host}/{ CurrentTimeStamp :d-M-yy_HH-mm-ss}/Error/ErrorHtml{resultType}.txt"); DataDumper.Write(doc.DocumentNode.InnerHtml, $"{SavePath}/Debug/{SiteUri.Host}/{CurrentTimeStamp:d-M-yy_HH-mm-ss}/Error/ErrorHtml{resultType}.txt"); return(html, null); } var linkList = new List <string>(); foreach (var linkNode in linkNodes) { var relativeLink = linkNode.Attributes[selectorAttributeForValue].Value; if (string.IsNullOrWhiteSpace(relativeLink)) { continue; } if (resultLinksAreRelative) { Logger.Log($"Result {resultType} Link: {BaseUrl + relativeLink}", LogType.Log); linkList.Add(BaseUrl + relativeLink); } else { Logger.Log($"Result {resultType} Link: {relativeLink}", LogType.Log); linkList.Add(relativeLink); } } return(html, linkList); }