コード例 #1
0
        public FunapiNetwork (bool session_reliability = false)
        {
            state_ = State.kUnknown;
            recv_type_ = typeof(FunMessage);
            session_reliability_ = session_reliability;
            serializer_ = new FunMessageSerializer ();
            response_timer_ = 0f;
            ResponseTimeout = 0f;

            message_handlers_[kNewSessionMessageType] = this.OnNewSession;
            message_handlers_[kSessionClosedMessageType] = this.OnSessionTimedout;
            message_handlers_[kMaintenanceMessageType] = this.OnMaintenanceMessage;

            FunapiManager.instance.Create();
            InitSession();
        }
コード例 #2
0
        //---------------------------------------------------------------------
        // FunapiTransport-related functions
        //---------------------------------------------------------------------
        public void AttachTransport(FunapiTransport transport)
        {
            DebugUtils.Assert(transport != null);

            lock (transports_lock_)
            {
                if (transports_.ContainsKey(transport.Protocol))
                {
                    StringBuilder strlog = new StringBuilder();
                    strlog.AppendFormat("AttachTransport - transport of '{0}' type already exists.", transport.Protocol);
                    strlog.Append(" You should call DetachTransport first.");
                    Debug.LogWarning(strlog);
                    return;
                }

                transport.Timer = timer_;

                // Callback functions
                transport.ConnectTimeoutCallback += new TransportEventHandler(OnConnectTimeout);
                transport.StartedInternalCallback += new TransportEventHandler(OnTransportStarted);
                transport.StoppedCallback += new TransportEventHandler(OnTransportStopped);
                transport.ConnectFailureCallback += new TransportEventHandler(OnTransportConnectFailure);
                transport.DisconnectedCallback += new TransportEventHandler(OnTransportDisconnected);
                transport.ReceivedCallback += new TransportReceivedHandler(OnTransportReceived);
                transport.MessageFailureCallback += new TransportMessageHandler(OnTransportFailure);

                serializer_ = new FunMessageSerializer ();
                transport.ProtobufHelper = serializer_;

                transports_[transport.Protocol] = transport;

                if (default_protocol_ == TransportProtocol.kDefault)
                {
                    SetDefaultProtocol(transport.Protocol);
                }

                if (Started)
                {
                    StartTransport(transport);
                }

                Debug.Log(String.Format("{0} transport attached.", transport.Protocol));
            }
        }