public override void Register(IServiceRegister register) { //Just create a new collection and register it NetworkEntityCollection entityCollection = new NetworkEntityCollection(); IncrementalNetworkGuidFactory guidFactory = new IncrementalNetworkGuidFactory(); NetPeerCollection peerCollection = new NetPeerCollection(); ConnectionToPlayerGuidLookupService lookupService = new ConnectionToPlayerGuidLookupService(); register.Register(entityCollection, RegistrationType.SingleInstance, null); register.Register(guidFactory, RegistrationType.SingleInstance, typeof(INetworkGuidFactory)); register.Register(peerCollection, RegistrationType.SingleInstance, typeof(IReadonlyPeerCollection)); register.Register(peerCollection, RegistrationType.SingleInstance, typeof(IPeerCollection)); register.Register(lookupService, RegistrationType.SingleInstance, typeof(IConnectionToGuidLookupService)); register.Register(lookupService, RegistrationType.SingleInstance, typeof(IConnectionToGuidRegistry)); }
/// <summary> /// NetManager constructor /// </summary> /// <param name="listener">Network events listener</param> /// <param name="maxConnections">Maximum connections (incoming and outcoming)</param> public NetManager(INetEventListener listener, int maxConnections) { //_logicThread = new Thread(UpdateLogic) { Name = "LogicThread", IsBackground = true }; _socket = new NetSocket(ReceiveLogic); _netEventListener = listener; _netEventsQueue = new FastQueue <NetEvent>(); _netEventsPool = new Stack <NetEvent>(); NetPacketPool = new NetPacketPool(); NatPunchModule = new NatPunchModule(this); Statistics = new NetStatistics(); _peers = new NetPeerCollection(maxConnections); _connectingPeers = new HashSet <NetEndPoint>(); _maxConnections = maxConnections; _updateTimeFilter = new long[3]; // Precreate all needed Merge Packets NetPacketPool.PoolLimit = maxConnections * 100; //NetPacketPool.Prepool(maxConnections * 2, MtuStartIdx >= 0 && MtuStartIdx < NetConstants.PossibleMtu.Length ? NetConstants.PossibleMtu[MtuStartIdx] : (NetConstants.MaxPacketSize - NetConstants.FragmentHeaderSize)); //NetPacketPool.Prepool(maxConnections * 20, 16); }