public void Connect(string host) { if (mConn != null && !mConn.state.IsDisconnected()) { DebugUtility.LogError(LoggerTags.Online, "Please disconnect this conn."); return; } DebugUtility.LogTrace(LoggerTags.Online, "Connnect to {0}", host); const string kSimProtocolStr = "sim://"; // sim : simulator if (host.StartsWith(kSimProtocolStr)) { string name = host.Substring(kSimProtocolStr.Length); var simulators = UnityEngine.Object.FindObjectsOfType <ScratchWebSocketClientSimulator>(); foreach (var simulator in simulators) { if (simulator.name.StartsWith(name, StringComparison.OrdinalIgnoreCase)) { mConn = simulator; } if (mConn != null) { break; } } if (mConn != null) { mConn.onConnected = OnConnected; mConn.onRecv = OnMessage; mConn.onError = OnError; mConn.onDisconnected = OnDisconnected; mConn.Connect(host); } else { mConn = NetworkFactory.CreateWebSocketSimulator <ScratchWebSocketClientSimulator>(host, true, OnConnected, OnDisconnected, OnMessage, OnError); } return; } if (host.StartsWith(WebBridgeClient.ProtocolHeader)) { mConn = NetworkFactory.CreateWebClient <WebBridgeClient>(host, true, OnConnected, OnDisconnected, OnMessage, OnError); return; } mConn = NetworkFactory.CreateWebClient(host, true, OnConnected, OnDisconnected, OnMessage, OnError); }