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(); }
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; }