예제 #1
0
 private static void StartSign(string message, IWebSocketConnection socket)
 {
     try
     {
         if (!DeviceChangeNotifier.isStart())
         {
             DeviceChangeNotifier.Start();
         }
         else
         {
             DeviceChangeNotifier.Init();
         }
         DeviceChangeNotifier.OKResultFunc = ((a) =>
         {
             SocketReponse socketReponse = new SocketReponse();
             socketReponse.Data = a;
             DeviceChangeNotifier.Finalize();
             socket.Send(socketReponse.ToString());
         });
     }
     catch (Exception ex)
     {
         throw;
     }
 }
예제 #2
0
        void Main()
        {
            FleckLog.Level = LogLevel.Debug;

            var server = new WebSocketServer("wss://0.0.0.0:8181");
            var cert   = CertManager.GetCert("localhost", TimeSpan.FromDays(3650), "devpwd", AppDomain.CurrentDomain.BaseDirectory + "cert.dat");

            CertManager.ActivateCert(cert);
            server.Certificate         = cert;
            server.EnabledSslProtocols = System.Security.Authentication.SslProtocols.Tls11 | System.Security.Authentication.SslProtocols.Tls12;
            server.Start(socket =>
            {
                socket.OnOpen = () =>
                {
                    Console.WriteLine("Open!");
                    allSockets.Add(socket);
                };
                socket.OnClose = () =>
                {
                    Console.WriteLine("Close!");
                    allSockets.Remove(socket);
                };
                socket.OnMessage = message =>
                {
                    try
                    {
                        var rq = SocketRequest.DeserializeObject(message);
                        switch (rq.cmd.ToLower())
                        {
                        case "start":
                            StartSign(message, socket);
                            break;

                        default:
                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        SocketReponse socketReponse = new SocketReponse();
                        socketReponse.Code          = 1;
                        socketReponse.Message       = ex.Message;
                        socket.Send(socketReponse.ToString());
                    }

                    Console.WriteLine(message);
                };
            });
        }