Exemplo n.º 1
0
        public IClientConnector Start(IApplication application)
        {
            var port = PortFinder.FindPort(5000);

            _application = application;

            BaseAddress = "http://localhost:" + port;

            var webSockets = new WebSocketsHandler();

            _commands = new CommandRunner(application);


            Client = new ClientConnector(webSockets, _commands.HandleJson)
            {
                WebSocketsAddress = $"ws://127.0.0.1:{port}"
            };

            startWebServer(port, webSockets);

#if DEBUG
            _watcher = new AssetFileWatcher(Client);
            _watcher.Start(_input);
#endif

            return(Client);
        }
Exemplo n.º 2
0
        public IClientConnector Start(IApplication application, WebApplicationConfiguration additionalConfiguration = null)
        {
            var port     = additionalConfiguration?.Port ?? PortFinder.FindPort(5000);
            var hostname = additionalConfiguration?.Hostname ?? "localhost";

            _application = application;

            BaseAddress = $"http://{hostname}:{port}";

            var webSockets = new WebSocketsHandler();

            _commands = new CommandRunner(application);


            Client = new ClientConnector(webSockets, _commands.HandleJson)
            {
                WebSocketsAddress = $"ws://{hostname}:{port}"
            };

            startWebServer(hostname, port, webSockets);

#if DEBUG
            _watcher = new AssetFileWatcher(Client);
            _watcher.Start(_input);
#endif

            return(Client);
        }
        public WebApplicationRegistry(string webSocketAddress, WebSocketsHandler webSockets, IRemoteController controller, StorytellerContext context)
        {
            For <StorytellerContext>().Use(context);
            For <IRemoteController>().Use(controller);

            ForSingletonOf <IClientConnector>()
            .Use <ClientConnector>()
            .SetProperty(x => x.WebSocketsAddress = webSocketAddress);

            For <WebSocketsHandler>().Use(webSockets);

            For <ISpecFileWatcher>().Use <SpecFileWatcher>();

            ForSingletonOf <AssetFileWatcher>().Use <AssetFileWatcher>();


            ForSingletonOf <IPersistenceController>().Use <PersistenceController>();

            For <IApplicationFiles>().Use(new ApplicationFiles(Directory.GetCurrentDirectory()));

            Scan(x =>
            {
                x.AssemblyContainingType <ICommand>();
                x.AssemblyContainingType <OpenInput>();

                x.AddAllTypesOf <ICommand>();
            });
        }
Exemplo n.º 4
0
 public PeerToPeerService(ILogger <PeerToPeerService> logger, PeerToPeerMessageHandler peerToPeerMessageHandler, BlockContentService blockContentService, WebSocketsHandler webSocketsHandler)
 {
     _logger = logger;
     _peerToPeerMessageHandler = peerToPeerMessageHandler;
     _blockContentService      = blockContentService;
     _webSocketsHandler        = webSocketsHandler;
 }
Exemplo n.º 5
0
        public ClientConnector(WebSocketsHandler handler, IRemoteController controller, IEnumerable <ICommand> commands)
        {
            _controller = controller;
            _commands   = commands;
            _handler    = handler;

            _handler.Received = HandleJson;
        }
Exemplo n.º 6
0
 void OnDisable()
 {
     Debug.Log("Disposing WebServer...");
     server.Dispose();
     server = null;
     webSocketsHandler.Dispose();
     webSocketsHandler = null;
 }
Exemplo n.º 7
0
        public WebSocketServer()
        {
            _webSockets = new WebSocketsHandler
            {
                Received = receiveJson
            };

            Port = PortFinder.FindPort(5250);
        }
Exemplo n.º 8
0
        private void startWebServer(string hostname, int port, WebSocketsHandler webSockets)
        {
#if NET46
            var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
#else
            var baseDirectory = AppContext.BaseDirectory;
#endif
            var hostBuilder = new WebHostBuilder()
                              .UseKestrel()
                              .UseContentRoot(baseDirectory)
                              .Configure(app =>
            {
                app.UseWebSockets();

                app.Use(async(http, next) =>
                {
                    if (http.WebSockets.IsWebSocketRequest)
                    {
                        await webSockets.HandleSocket(http).ConfigureAwait(false);
                    }
                    else
                    {
                        await next().ConfigureAwait(false);
                    }
                });

#if DEBUG
                configureStaticFiles(app);
#endif

                app.Run(async http =>
                {
                    if (http.Request.Path == "/favicon.ico")
                    {
                        await writeFavicon(http).ConfigureAwait(false);

                        return;
                    }

                    try
                    {
                        http.Response.ContentType = "text/html";

                        await HomeEndpoint.BuildPage(http.Response, _application, _input).ConfigureAwait(false);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.ToString());
                        throw;
                    }
                });
            });

            _server = hostBuilder.Start($"http://{hostname}:{port}");
        }
Exemplo n.º 9
0
        public MainWindow()
        {
            InitializeComponent();

            //Setup culture settings
            CultureInfo customCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();

            customCulture.NumberFormat.NumberDecimalSeparator = ".";

            Thread.CurrentThread.CurrentCulture = customCulture;

            //Initialize Web and sensors
            WebSocketsHandler.Initialize();
            SensorsHandler.Initialize();

            //Setup kinect settings
            MainKinectHandler = KinectHandler.Instance();

            SensorChooserUI.KinectSensorChooser = MainKinectHandler.SensorChooser;

            var regionSensorBinding = new Binding("Kinect")
            {
                Source = MainKinectHandler.SensorChooser
            };

            //Setup GUI bindings
            BindingOperations.SetBinding(this.MainKinectRegion, KinectRegion.KinectSensorProperty, regionSensorBinding);
            MainKinectRegion.KinectSensor = MainKinectHandler.SensorChooser.Kinect;

            //Setup & Register Custom Gestures

            //Both hands up registered custom gesture.
            CustomGesturesHandler.Instance().RegisterCustomGesture(
                new CustomGesture("BothHandsUp", (skeleton) =>
            {
                Joint rightHand  = skeleton.Joints[JointType.HandRight];
                Joint leftHand   = skeleton.Joints[JointType.HandLeft];
                Joint leftElbow  = skeleton.Joints[JointType.ElbowLeft];
                Joint rightElbow = skeleton.Joints[JointType.ElbowLeft];
                Joint head       = skeleton.Joints[JointType.Head];

                //Hands are in front.
                if (leftHand.Position.Z < leftElbow.Position.Z && rightHand.Position.Z < rightElbow.Position.Z)
                {
                    //Hands are over head.
                    return(rightHand.Position.Y > head.Position.Y && leftHand.Position.Y > head.Position.Y);
                }

                return(CustomGesture.FAILURE);
            })
                );
        }
Exemplo n.º 10
0
    void OnEnable()
    {
        string path = Application.streamingAssetsPath + "/EmbeddedWebserver_StaticFiles";

        Debug.Log("Starting WebServer, serving folder '" + path + "'...");

        Terminal.OnLogMessageReceived += OnLogMessageReceived;

        server = new WebServer(port, Unosquare.Labs.EmbedIO.Constants.RoutingStrategy.Regex);
        server.RegisterModule(new StaticFilesModule(path));
        // The static files module will cache small files in ram until it detects they have been modified.
        server.Module <StaticFilesModule>().UseRamCache      = true;
        server.Module <StaticFilesModule>().DefaultExtension = ".html";
        // We don't need to add the line below. The default document is always index.html.
        //server.Module<Modules.StaticFilesWebModule>().DefaultDocument = "index.html";
        server.RegisterModule(new WebApiModule());
        server.Module <WebApiModule>().RegisterController <ExperimentalApi>();
        server.RegisterModule(new WebSocketsModule());
        webSocketsHandler = new WebSocketsHandler();
        server.Module <WebSocketsModule>().RegisterWebSocketsServer <WebSocketsHandler>("/ws", webSocketsHandler);

        server.RunAsync();
    }
 public StreamController(WebSocketsHandler handler)
 {
     _handler = handler;
 }
Exemplo n.º 12
0
        public void Start()
        {
            Controller = _input.BuildRemoteController();
            var context = new StorytellerContext(Controller, _input);

            Controller.AssertValid();


            context.Start();

            var port = PortFinder.FindPort(5000);

            if (_input.WebSocketAddressFlag.IsNotEmpty())
            {
                port = new Uri(_input.WebSocketAddressFlag).Port;
            }


            BaseAddress = "http://localhost:" + port;

            var webSockets = new WebSocketsHandler();


            var webSocketsAddress = $"ws://127.0.0.1:{port}";

            // TODO -- fugly as hell. Either do it all the SM way, or rip out SM
            var registry = new WebApplicationRegistry(webSocketsAddress, webSockets, Controller, context);

            _container = new Container(registry);



            var baseDirectory = AppContext.BaseDirectory;
            var host          = new WebHostBuilder()
                                .UseKestrel()
                                .UseContentRoot(baseDirectory)
                                .UseUrls($"http://localhost:{port}")
                                .Configure(app =>
            {
                app.UseWebSockets();

                app.Use(async(http, next) =>
                {
                    if (http.WebSockets.IsWebSocketRequest)
                    {
                        await webSockets.HandleSocket(http).ConfigureAwait(false);
                    }
                    else
                    {
                        await next().ConfigureAwait(false);
                    }
                });

                app.UseStaticFiles(new StaticFileOptions
                {
                    ServeUnknownFileTypes = true,
                    FileProvider          = new PhysicalFileProvider(baseDirectory)
                });

                app.Run(async(http) =>
                {
                    var endpoint = _container.GetInstance <HomeEndpoint>();
                    var html     = endpoint.Index().ToString();

                    http.Response.ContentType = "text/html";
                    await http.Response.WriteAsync(html).ConfigureAwait(false);
                });
            });

            _server = host.Start();


            Controller.AddListener(_container.GetInstance <IClientConnector>());

            _container.GetInstance <AssetFileWatcher>().Start();

            var persistence = _container.GetInstance <IPersistenceController>();

            persistence.StartWatching(context.SpecPath);
            context.AddRemoteListener(persistence);
        }
Exemplo n.º 13
0
        public BrowserRefresher(WebSocketsHandler handler)
        {
            _handler = handler;
        public ClientConnector(WebSocketsHandler handler, Action <string> handleJson)
        {
            _handler = handler;

            _handler.Received = handleJson;
        }
Exemplo n.º 15
0
 public BrowserRefresher(WebSocketsHandler handler)
 {
     _handler = handler;
 }