コード例 #1
0
ファイル: Program.cs プロジェクト: Stoom/WebSocketListener
        static void Main(string[] args)
        {
            using (var server = new WebSocketEventListener(new IPEndPoint(IPAddress.Any, 8009), new WebSocketListenerOptions() { SubProtocols=new String[]{"text"} }))
            {
                server.OnConnect += (ws)=> Console.WriteLine("Connection from " + ws.RemoteEndpoint.ToString());
                server.OnDisconnect += (ws) => Console.WriteLine("Disconnection from " + ws.RemoteEndpoint.ToString());
                server.OnError += (ws, ex) => Console.WriteLine("Error: " + ex.Message);
                server.OnMessage += (ws, msg) =>
                    {
                        Console.WriteLine("Message from [" + ws.RemoteEndpoint + "]: " + msg);
                        ws.WriteStringAsync(new String(msg.Reverse().ToArray()), CancellationToken.None).Wait();
                    };

                server.Start();
                Console.ReadKey(true);
            }

            
        }
コード例 #2
0
        static void Main(string[] args)
        {
            using (var server = new WebSocketEventListener(new IPEndPoint(IPAddress.Any, 8009), new WebSocketListenerOptions()
            {
                SubProtocols = new String[] { "text" }
            }))
            {
                server.OnConnect    += (ws) => Console.WriteLine("Connection from " + ws.RemoteEndpoint.ToString());
                server.OnDisconnect += (ws) => Console.WriteLine("Disconnection from " + ws.RemoteEndpoint.ToString());
                server.OnError      += (ws, ex) => Console.WriteLine("Error: " + ex.Message);
                server.OnMessage    += (ws, msg) =>
                {
                    Console.WriteLine("Message from [" + ws.RemoteEndpoint + "]: " + msg);
                    ws.WriteStringAsync(new String(msg.Reverse().ToArray()), CancellationToken.None).Wait();
                };

                server.Start();
                Console.ReadKey(true);
            }
        }
コード例 #3
0
        static async Task Main(string[] args)
        {
            //CheckTask();
            //return;
            //var k1 = Table;
            //var k2 = Table;

            var tokenSource = new CancellationTokenSource();
            var token       = tokenSource.Token;
            var r           = new Random();
            var utils       = new Utils();
            var cert        = utils.GetCert();
            var sockets     = new List <WebSocket>();

            NewExecutionFlow.Run(cert, new IPEndPoint(IPAddress.Any, 8009));

            return;


            using (var server = new WebSocketEventListener(new IPEndPoint(IPAddress.Any, 8009), new WebSocketListenerOptions()
            {
                SubProtocols = new String[] { "123456" }, NegotiationTimeout = TimeSpan.FromSeconds(30)
            }, cert))
            {
                server.OnConnect += (ws) => {
                    sockets.Add(ws);
                    Console.WriteLine("Connection from " + ws.RemoteEndpoint.ToString());
                    var socket = ws;
                    Task.Factory.StartNew(() =>
                    {
                        while (ws.IsConnected)
                        {
                            Thread.Sleep(1000);
                            ws.WriteStringAsync(DateTime.Now.ToString());
                        }
                    });
                };
                server.OnDisconnect += (ws) =>
                {
                    sockets.Remove(ws);
                    Console.WriteLine("Disconnection from " + ws.RemoteEndpoint.ToString());
                };
                server.OnError += (ws, ex) =>
                {
                    Console.WriteLine("Error: " + ex.Message);
                };
                server.OnMessage += (ws, msg) =>
                {
                    if (token.IsCancellationRequested)
                    {
                    }
                    Console.WriteLine("Message from [" + ws.RemoteEndpoint + "]: " + msg);
                    var wsContext = ws;
                    var task      = Task.Factory.StartNew(() =>
                    {
                        var util = new Utils();
                        // util.ProcessMessage(wsContext);
                        foreach (var w in sockets)
                        {
                            if (w != ws)
                            {
                                w.WriteStringAsync("new guy connected").RunSynchronously();
                            }
                        }
                    }, token);

                    //ws.WriteStringAsync(new String(msg.Reverse().ToArray()), CancellationToken.None).Wait();
                };

                await server.Start();

                Console.ReadKey(true);
                tokenSource.Cancel();
                Console.ReadKey(true);
            }
        }