Exemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        var ugly = UnityThreadHelper.Dispatcher;

        wssv = new WebSocketSharp.Server.WebSocketServer("ws://localhost:7000/");
        wssv.AddWebSocketService <Vis> ("/", () => new Vis()
        {
            IgnoreExtensions = true
        });
        wssv.AddWebSocketService <Laputa> (
            "/Laputa",
            () => new Laputa()
        {
            IgnoreExtensions = true
        });
        ;
        wssv.Start();
        Debug.Log("Is listening: " + wssv.IsListening + " on port " + wssv.Port);

        ws = new WebSocket("ws://localhost:7000/Laputa");

        ws.OnMessage += (sender, e) =>
                        Debug.Log("Laputa says: " + e.Data);

        ws.Connect();
    }
Exemplo n.º 2
0
        private void frmMain_Load(object sender, EventArgs e)
        {
            server = new WebSocketSharp.Server.WebSocketServer(8080);
            server.AddWebSocketService<Lancher>("/");

            OutLog("サーバ初期化完了");
        }
Exemplo n.º 3
0
        private WebSocketSharp.Server.WebSocketServer CreateWebSocketServer(WebSocketServerContext context)
        {
            var wsServer = new WebSocketSharp.Server.WebSocketServer(context.IpAddress, context.Port, false);

            wsServer.ReuseAddress = true;
            wsServer.AddWebSocketService <WsRootHandler>(WsRootHandler.ServicePath, (x) =>
            {
                x.M             = context.MessageServer.M;
                x.L             = context.MessageServer.L;
                x.MessageServer = context.MessageServer;
                x.DataProvider  = _commonJsonDataProvider;

                x.OnClientDisconnected = (sender, args) =>
                {
                    if (!_clientsHandlers.TryRemove(x.SessionId, out x))
                    {
                        throw new InvalidOperationException($"Client {x.SessionId} is not registered and cannot be deleted.");
                    }
                };

                x.OnClientConnected = (sender, args) =>
                {
                    if (!_clientsHandlers.TryAdd(x.SessionId, x))
                    {
                        throw new InvalidOperationException($"Client {x.SessionId} has already been connected to WebSocket server.");
                    }
                };
            });
            wsServer.AddWebSocketService <WsEchoHandler>(WsEchoHandler.ServicePath, (x) =>
            {
                x.L = context.MessageServer.L;
            });

            return(wsServer);
        }
Exemplo n.º 4
0
        public Server(WebSocketServerContext context)
        {
            _context = context;
            _commonJsonDataProvider = new CommonJsonDataProvider(_context.MessageServer);
            L = context.MessageServer.L;

            _webSocketServer = CreateWebSocketServer(context);
        }
        private void InitializeServer()
        {
            _wsServer = new WebSocketSharp.Server.WebSocketServer($"ws://0.0.0.0:{port}");
            _wsServer.AddWebSocketService("/", () => new ClientSocket(this));

            ClientSockets = new List <ClientSocket>();
            DeviceIds     = new HashSet <string>();
        }
Exemplo n.º 6
0
 public DebugServer()
 {
     server = new WebSocketSharp.Server.WebSocketServer("ws://127.0.0.1:8809");
     server.AddWebSocketService <DebugServer>("/Debug",
                                              () =>
     {
         return(this);
     });
     server.Start();
 }
Exemplo n.º 7
0
 protected override void OnBeginService(int Address)
 {
     wss = new WebSocketSharp.Server.WebSocketServer(System.Net.IPAddress.Any, Address);
     wss.AddWebSocketService <Behavior>("/Client", (c) =>
     {
         lock (Accepted)
             Insert(ref Accepted, new WebSocket(c), 0);
         OnAccept?.Invoke();
     });
     wss.Start();
 }
Exemplo n.º 8
0
 public override void Setup(string ip, int port)
 {
     base.Setup(ip, port);
     _server           = new WebSocketSharp.Server.WebSocketServer(NetTool.GetAddress(ip, port));
     _server.Log.Level = WebSocketSharp.LogLevel.Error;
     _server.AddWebSocketService(defaultServicePath, () =>
     {
         WebSocketSession session = new WebSocketSession(SendAction);
         session.onConnected      = () => { OnSessionConnected(session); };
         session.onClosed         = () => { OnSessionClosed(session); };
         session.onReceived       = (data) => { OnSessionReceived(session, data); };
         return(session.behavior);
     });
 }
Exemplo n.º 9
0
 public IPCConnectionWebSocket()
 {
     try
     {
         Server = new WSS.WebSocketServer(ListeningPort, false);
         Server.AddWebSocketService <IPCWSBehavior>("/", () => new IPCWSBehavior(this));
         Server.Start();
     }catch (Exception e) {
         IsServer          = false;
         Client            = new WS.WebSocket("ws://127.0.0.1:" + ListeningPort + "/");
         Client.OnMessage += ClientReceivedMsg;
         Client.Connect();
     }finally{
         IsServer = true;
     }
 }
Exemplo n.º 10
0
        public WebSocketServerGeneric(string endpoint, IJsonMarshaller marshaller, ILogger logger,
                                      IWebSocketServerHandlers <C> handlers = null)
        {
            this._endpoint = endpoint;
            bool secured;

            if (endpoint.StartsWith("ws://"))
            {
                secured = false;
            }
            else
            if (endpoint.StartsWith("wss://"))
            {
                secured = true;
            }
            else
            {
                throw new Exception("Endpoint for a websocket server must start with ws:// or ws://");
            }

            var pathStart = endpoint.IndexOf('/', secured ? 6 : 5);

            _endpoint = endpoint.Substring(0, pathStart);
            _path     = endpoint.Substring(pathStart);
            if (string.IsNullOrEmpty(_path))
            {
                _path = "/";
            }

            logger.Logf(LogLevel.Trace, "WebSocketServer: Endpoint " + _endpoint);
            logger.Logf(LogLevel.Trace, "WebSocketServer: Path " + _path);

            _marshaller = marshaller;
            _logger     = logger;
            _started    = false;
            _dispatcher = new Dispatcher <ConnectionContext <C>, string>();
            _wss        = new WebSocketSharp.Server.WebSocketServer(_endpoint);
            // wss.Log.Level = WebSocketSharp.LogLevel.Debug;
            _wss.AddWebSocketService <WebSocketServerHandler <C> >(_path,
                                                                   () => new WebSocketServerHandler <C>(_dispatcher, marshaller, logger, handlers));
        }
Exemplo n.º 11
0
        static void Main(string[] args)
        {
            // 1. Select input device

            int waveInDevices = WaveIn.DeviceCount;
            int waveInDevice;

            for (waveInDevice = 0; waveInDevice < waveInDevices; waveInDevice++)
            {
                WaveInCapabilities deviceInfo = WaveIn.GetCapabilities(waveInDevice);
                Console.WriteLine("Device {0}: {1}, {2} channels", waveInDevice, deviceInfo.ProductName, deviceInfo.Channels);
            }

            Console.WriteLine($"Device {waveInDevice}: WASAPI Loopback");

            int chosenDevice = args.Length > 0 ? int.Parse(args[0]) : int.Parse(Console.ReadLine());

            // 2. Start streaming

            var socket = new WebSocketSharp.Server.WebSocketServer(5001);

            socket.AddWebSocketService <WebSocketStreamService>("/stream");
            socket.Start();

            IWaveIn waveIn;

            if (chosenDevice == waveInDevice)
            {
                waveIn = new WasapiLoopbackCapture();
            }
            else
            {
                waveIn = new WaveInEvent
                {
                    DeviceNumber = chosenDevice,
                    WaveFormat   = new WaveFormat(44100, 2)
                };
            }

            var wav = new BufferedWaveProvider(waveIn.WaveFormat);

            wav.BufferDuration = TimeSpan.FromMinutes(1);

            waveIn.DataAvailable += (sender, e) =>
            {
                wav.AddSamples(e.Buffer, 0, e.BytesRecorded);
            };
            waveIn.StartRecording();

            while (true)
            {
                Console.WriteLine("Waiting for audio...");

                while (wav.BufferedDuration < TimeSpan.FromSeconds(SegmentDurationSeconds))
                {
                    // Wait for more audio to become available
                }

                // Write audio to wave file

                var fn = "sample.wav";
                using (var fs = File.OpenWrite(fn))
                    using (var wtr = new WaveFileWriter(fs, wav.WaveFormat))
                    {
                        int total = 0;
                        while (total < wav.WaveFormat.AverageBytesPerSecond * SegmentDurationSeconds)
                        {
                            byte[] buffer = new byte[wav.WaveFormat.AverageBytesPerSecond];
                            int    read   = wav.Read(buffer, 0, buffer.Length);

                            wtr.Write(buffer, 0, read);

                            total += read;
                        }
                    }

                // Transcode wave file to vorbis webm file

                string output = "sample.webm";

                if (File.Exists(output))
                {
                    File.Delete(output);
                }

                var process = new Process
                {
                    StartInfo = new ProcessStartInfo("ffmpeg.exe",
                                                     $"-i \"{fn}\" -c:a libvorbis -qscale:a 7 \"{output}\"")
                    {
                        UseShellExecute = false
                    }
                };

                process.Start();
                process.WaitForExit();

                socket.WebSocketServices.Broadcast(File.ReadAllBytes(output));

                File.Delete(output);
            }
        }
Exemplo n.º 12
0
 public WebSocketServer(string url)
 {
     mServerInstance = new WebSocketSharp.Server.WebSocketServer(url);
 }
Exemplo n.º 13
0
 public WebSocketServer(int port)
 {
     mServerInstance = new WebSocketSharp.Server.WebSocketServer(port);
 }