コード例 #1
0
        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);
        }