Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 2
0
        /// <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();
        }
Ejemplo n.º 3
0
        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++;
                }
            };
        }
Ejemplo n.º 4
0
 public WebRendererInteropMethods(WebRenderer renderer, JsonSerializerOptions jsonOptions, JSComponentInterop jsComponentInterop)
 {
     _renderer           = renderer;
     _jsonOptions        = jsonOptions;
     _jsComponentInterop = jsComponentInterop;
 }
Ejemplo n.º 5
0
        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);
        }