// 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(); }
private void frmMain_Load(object sender, EventArgs e) { server = new WebSocketSharp.Server.WebSocketServer(8080); server.AddWebSocketService<Lancher>("/"); OutLog("サーバ初期化完了"); }
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); }
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>(); }
public DebugServer() { server = new WebSocketSharp.Server.WebSocketServer("ws://127.0.0.1:8809"); server.AddWebSocketService <DebugServer>("/Debug", () => { return(this); }); server.Start(); }
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(); }
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); }); }
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; } }
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)); }
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); } }
public WebSocketServer(string url) { mServerInstance = new WebSocketSharp.Server.WebSocketServer(url); }
public WebSocketServer(int port) { mServerInstance = new WebSocketSharp.Server.WebSocketServer(port); }