예제 #1
0
 public NetworkConnectionHandler(ILogger logger, INetworkConnectionManager connectionManager, INetworkConnectionProvider connectionProvider, INetworkSessionManager sessionManager, INetworkSessionProvider sessionProvider)
 {
     this.logger             = logger;
     this.connectionManager  = connectionManager;
     this.connectionProvider = connectionProvider;
     this.sessionManager     = sessionManager;
     this.sessionProvider    = sessionProvider;
 }
        private void OnDestroy()
        {
            connectionManager.DisconnectAll();
            connectionManager.OnConnected    -= OnNetConnected;
            connectionManager.OnDisconnected -= OnNetDisconnected;
            connectionManager.OnReceive      -= OnNetReceived;

            connectionManager = null;
            Destroy(connectionManagerGameObject);
            connectionManagerGameObject = null;
        }
        private void Start()
        {
            connectionManagerGameObject = Instantiate(connectionManagerPrefab);
            connectionManager           = connectionManagerGameObject.GetComponent <INetworkConnectionManager>();

            connectionManager.OnConnected    += OnNetConnected;
            connectionManager.OnDisconnected += OnNetDisconnected;
            connectionManager.OnReceive      += OnNetReceived;

            if (runAsServer)
            {
                connectionManager.StartListening(serverPort);
            }
            else
            {
                connectionManager.ConnectTo(serverAddress, serverPort);
            }
        }
예제 #4
0
        /// <summary>
        /// Initialise and configure the StructureMap
        /// </summary>
        public Connection()
        {
            this._disposed = false;
            this._ignoreDispatcher = true;
            this._packetParsers = new Dictionary<int, IParser>();
            this._registeredEvents = new Dictionary<int, List<delegateNetworkEvent>>();
            this._header = new HeaderCollection();
            this._header.Add(new Header("ver", 1));
            NetworkPacket.DefaultHeader = this._header;
            this.RegisterPacketParser((int)CorePacketCode.CollectionChanged, new CollectionChangedParser());
            this.RegisterPacketParser((int)CorePacketCode.PropertyUpdated, new PropertyChangedParser());
            this.RegisterEvent((int)CorePacketCode.AssignNewHeaderValue, AssignValueInHeader);

            ObjectFactory.Initialize(x =>
            {
                x.For<INetwork>().Singleton().Use(this);
                x.AddRegistry<NetworkRegistry>();
            });
            IList<INetworkConnectionManager> listManagers = ObjectFactory.GetAllInstances<INetworkConnectionManager>();
            if (listManagers.Count == 0)
                throw new NullReferenceException("No valid connection plugins were found in neither the plugin folder or the plugins.");
            else
                _connectionManager = listManagers[0];
        }