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