C# WebSocket通信


 

HttpListener创建的HTTP服务不能做到实时通信。所以需要WebScket实现与网页的通讯。

首先要在NuGet导入“Fleck”包,需 .NET Framework 4.5及以上。

 FleckLog.Level = LogLevel.Debug;
            var allSockets = new List();
            var server = new WebSocketServer("ws://127.0.0.1:50000");
            server.Start(socket =>
            {
                socket.OnOpen = () =>
                {
                    //Console.WriteLine("Open!");
                    allSockets.Add(socket);
                };
                socket.OnClose = () =>
                {
                    //Console.WriteLine("Close!");
                    allSockets.Remove(socket);
                };
                socket.OnMessage = message =>
                {
                    //Console.WriteLine(message);
                    allSockets.ToList().ForEach(s => s.Send("Echo: " + message));
                };
            });




            var input = DateTime.Now.ToString();
            while (input != "")
            {
                Thread.Sleep(1000);
                foreach (var socket in allSockets.ToList())
                {
                    socket.Send(input);
                }

                input = DateTime.Now.ToString();
            }

  2.html网页




    Welcome

  3.运行程序,打开html网页,网页和服务实现消息的实时通讯,如下图

C