Esempio n. 1
0
        public void Start()
        {
            _webSocketServer = new WebSocketServer();
            SuperSocket.SocketBase.Config.RootConfig rootConfig = new SuperSocket.SocketBase.Config.RootConfig();
            var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig();

            serverConfig.Name                = "PokeFeeder";
            serverConfig.ServerTypeName      = "WebSocketService";
            serverConfig.Ip                  = "Any";
            serverConfig.Port                = GlobalSettings.OutgoingServerPort;
            serverConfig.MaxRequestLength    = 4096;
            serverConfig.MaxConnectionNumber = 100 * 1000;
            serverConfig.SendingQueueSize    = 25;
            serverConfig.SendTimeOut         = 5000;
            var socketServerFactory = new SuperSocket.SocketEngine.SocketServerFactory();

            _webSocketServer.Setup(rootConfig, serverConfig, socketServerFactory);
            _webSocketServer.Start();
            _webSocketServer.NewMessageReceived  += new SessionHandler <WebSocketSession, string>(socketServer_NewMessageReceived);
            _webSocketServer.NewSessionConnected += socketServer_NewSessionConnected;
            _webSocketServer.SessionClosed       += socketServer_SessionClosed;

            UpdateTitle();
            var pokemonIds = GlobalSettings.UseFilter
? PokemonParser.ParsePokemons(new List <string>(GlobalSettings.PokekomsToFeedFilter))
: Enum.GetValues(typeof(PokemonId)).Cast <PokemonId>().ToList();

            _serverUploadFilter = ServerUploadFilterFactory.Create(pokemonIds);
        }
        public static ServerUploadFilter Create(List <PokemonId> pokemon)
        {
            ServerUploadFilter serverUploadFilter = new ServerUploadFilter();

            var pokemonsBinary = PokemonFilterToBinary.ToBinary(pokemon);

            serverUploadFilter.Pokemon    = pokemonsBinary;
            serverUploadFilter.AreaBounds = GlobalSettings.UseGeoLocationBoundsFilter ? GlobalSettings.GeoLocationBounds : null;

            return(serverUploadFilter);
        }