Beispiel #1
0
        internal static void Open()
        {
            if (window != null)
            {
                window.Close();
            }

            window         = GetWindow <Server_Fleck>(true, "Server(Fleck)");
            window.minSize = window.maxSize = new Vector2(600, 500);
            window.Show();
        }
Beispiel #2
0
        private void OnGUI()
        {
            Color lastColor = GUI.color;

            window = this;
            bool isStart = server != null && server.ListenerSocket != null;

            EditorGUILayout.BeginHorizontal();
            EditorGUI.BeginDisabledGroup(isStart);
            EditorGUILayout.LabelField("Listening on port:", GUILayout.Width(110));
            port = EditorGUILayout.IntField(port, GUILayout.Width(80));
            EditorGUILayout.LabelField("", GUILayout.Width(10));
            EditorGUILayout.LabelField("Secure:", GUILayout.Width(60));
            secure = EditorGUILayout.Toggle(secure);
            EditorGUI.EndDisabledGroup();
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Clear Logs", GUILayout.Width(120)))
            {
                logs.Clear();
            }
            EditorGUILayout.EndHorizontal();
            scroll = EditorGUILayout.BeginScrollView(scroll, "box");
            foreach (var log in new List <string>(logs))
            {
                EditorGUILayout.LabelField(log);
            }
            EditorGUILayout.EndScrollView();

            if (!isStart)
            {
                GUI.color = Color.green;
                if (GUILayout.Button("Start", GUILayout.Height(30)))
                {
                    if (secure)
                    {
                        server = new WebSocketServer("wss://0.0.0.0:" + port);
                        var certPwd  = "123456";
                        var certPath = "Assets/UnityWebSocket/Scripts/Editor/cert.pfx";
                        server.Certificate         = new X509Certificate2(certPath, certPwd);
                        server.EnabledSslProtocols = SslProtocols.Tls11 | SslProtocols.Tls12 | SslProtocols.Ssl2;
                    }
                    else
                    {
                        server = new WebSocketServer("ws://0.0.0.0:" + port);
                    }
                    server.Start(OnSocketConnect);
                }
            }
            else
            {
                GUI.color = Color.red;
                if (GUILayout.Button("Stop", GUILayout.Height(30)))
                {
                    foreach (var socket in sockets)
                    {
                        socket.Close();
                    }
                    sockets.Clear();
                    server.ListenerSocket = null;
                    server = null;
                }
            }

            GUI.color = lastColor;
        }