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); }
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>(); }); }
public PeerToPeerService(ILogger <PeerToPeerService> logger, PeerToPeerMessageHandler peerToPeerMessageHandler, BlockContentService blockContentService, WebSocketsHandler webSocketsHandler) { _logger = logger; _peerToPeerMessageHandler = peerToPeerMessageHandler; _blockContentService = blockContentService; _webSocketsHandler = webSocketsHandler; }
public ClientConnector(WebSocketsHandler handler, IRemoteController controller, IEnumerable <ICommand> commands) { _controller = controller; _commands = commands; _handler = handler; _handler.Received = HandleJson; }
void OnDisable() { Debug.Log("Disposing WebServer..."); server.Dispose(); server = null; webSocketsHandler.Dispose(); webSocketsHandler = null; }
public WebSocketServer() { _webSockets = new WebSocketsHandler { Received = receiveJson }; Port = PortFinder.FindPort(5250); }
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}"); }
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); }) ); }
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; }
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); }
public BrowserRefresher(WebSocketsHandler handler) { _handler = handler;
public ClientConnector(WebSocketsHandler handler, Action <string> handleJson) { _handler = handler; _handler.Received = handleJson; }
public BrowserRefresher(WebSocketsHandler handler) { _handler = handler; }