public NetworkingModule Build()
        {
            if (IdProvider == null)
            {
                IdProvider = new IdProvider();
            }

            if (NetworkingEntityFactory == null)
            {
                NetworkingEntityFactory = new NetworkingEntityFactory();
            }

            if (TokenProvider == null)
            {
                TokenProvider = new ClientTokenProvider();
            }

            if (NetworkingClientFactory == null)
            {
                NetworkingClientFactory = new NetworkingClientFactory();
            }

            if (AuthenticationProviderFactory == null)
            {
                AuthenticationProviderFactory = new AuthenticationProviderFactory();
            }

            if (StreamingHandlerFactory == null)
            {
                StreamingHandlerFactory = new ClientEntityStreamingHandlerFactory();
            }

            return(new NetworkingModule(Ip, Port, IdProvider, NetworkingEntityFactory, TokenProvider,
                                        NetworkingClientFactory, AuthenticationProviderFactory, StreamingHandlerFactory));
        }
Esempio n. 2
0
 public NetworkingModule(string ip, int port, IIdProvider <ulong> idProvider,
                         INetworkingEntityFactory entityFactory,
                         IIdProvider <string> tokenProvider, INetworkingClientFactory clientFactory,
                         IAuthenticationProviderFactory authenticationProviderFactory,
                         IStreamingHandlerFactory streamingHandlerFactory)
 {
     IdProvider    = idProvider;
     TokenProvider = tokenProvider;
     EntityPool    = new NetworkingEntityPool(idProvider, entityFactory);
     ClientPool    = new NetworkingClientPool(tokenProvider, clientFactory);
     Streamer      = new EntityStreamer();
     Server        = new Server(ip, port, ClientPool, authenticationProviderFactory, Streamer, streamingHandlerFactory);
 }
Esempio n. 3
0
        public Server(string ip, int port, INetworkingClientPool networkingClientPool, IAuthenticationProviderFactory authenticationProviderFactory, IEntityStreamer streamer,
                      IStreamingHandlerFactory factory)
        {
            var webSocket = new WebSocket();
            var authenticationProvider = authenticationProviderFactory.Create(ip, port, webSocket);
            var streamingHandler       = factory.Create(networkingClientPool, authenticationProvider);

            StreamingHandler                  = streamingHandler;
            webSocket.OnMessageReceived       = streamingHandler.OnMessage;
            webSocket.OnError                 = authenticationProvider.OnError;
            webSocket.OnConnectionEstablished = authenticationProvider.OnConnectionEstablished;
            webSocket.OnConnectionBroken      = authenticationProvider.OnConnectionBroken;
            webSocket.StartListen(port);
        }