예제 #1
0
async def test_success_cleans_up(loop: asyncio.BaseEventLoop):
    rx_addr = ('127.0.0.1', config.LOBBY_UDP_PORTS[-1])
    tx_addr = ('127.0.0.1', config.LOBBY_UDP_PORTS[-1]+1)
    msg = 'Hello 1'
    async with NatPacketServer(rx_addr) as server:
        recv_fut = server.await_packet(msg)

        async with NatPacketServer(tx_addr) as sender:
            sender.send_natpacket_to(msg, rx_addr)

            await recv_fut

            assert not server.is_waiting_for(msg)
예제 #2
0
async def test_sends_udp(loop: asyncio.BaseEventLoop):
    rx_addr = ('127.0.0.1', config.LOBBY_UDP_PORTS[-1])
    tx_addr = ('127.0.0.1', config.LOBBY_UDP_PORTS[-1]+1)
    msg = 'test'

    async with NatPacketServer(rx_addr) as server:
        recv_fut = server.await_packet(msg)

        async with NatPacketServer(tx_addr) as sender:
            sender.send_natpacket_to(msg, rx_addr)

        await recv_fut
        received_msg, _ = recv_fut.result()
        assert received_msg == msg
예제 #3
0
async def test_failure_cleans_up(loop: asyncio.BaseEventLoop):
    rx_addr = ('127.0.0.1', config.LOBBY_UDP_PORTS[-1])
    msg = 'Hello 1'
    async with NatPacketServer(rx_addr) as server:
        recv_fut = server.await_packet(msg)
        recv_fut.cancel()
        # Give the callback a chance to run
        await asyncio.sleep(0)
        assert not server.is_waiting_for(msg)
예제 #4
0
async def test_receives_udp(loop: asyncio.BaseEventLoop):
    addr = ('127.0.0.1', config.LOBBY_UDP_PORTS[-1])
    msg = 'test'

    async with NatPacketServer(addr) as server:
        recv_fut = server.await_packet(msg)
        await loop.create_datagram_endpoint(lambda: TestClientProto(("\x08"+msg).encode()),
                                            remote_addr=addr)
        received_msg, _ = await recv_fut
        assert received_msg == msg
예제 #5
0
파일: server.py 프로젝트: b2ag/server
                                                     port=int(DB_PORT),
                                                     user=DB_LOGIN,
                                                     password=DB_PASSWORD,
                                                     maxsize=10,
                                                     db=DB_NAME,
                                                     loop=loop))
        db_pool = loop.run_until_complete(pool_fut)

        players_online = PlayerService(db_pool)
        api_accessor = ApiAccessor()
        event_service = EventService(api_accessor)
        achievement_service = AchievementService(api_accessor)
        game_stats_service = GameStatsService(event_service,
                                              achievement_service)

        natpacket_server = NatPacketServer(
            addresses=config.LOBBY_NAT_ADDRESSES, loop=loop)
        loop.run_until_complete(natpacket_server.listen())
        server.NatPacketServer.instance = natpacket_server

        games = GameService(players_online, game_stats_service)
        matchmaker_queue = MatchmakerQueue('ladder1v1', players_online, games)
        players_online.ladder_queue = matchmaker_queue

        ctrl_server = loop.run_until_complete(
            server.run_control_server(loop, players_online, games))

        lobby_server = server.run_lobby_server(('', 8001), players_online,
                                               games, loop)

        for sock in lobby_server.sockets:
            sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
예제 #6
0
파일: server.py 프로젝트: Cheyans/server
        pool_fut = asyncio.async(server.db.connect(host=DB_SERVER,
                                                   port=int(DB_PORT),
                                                   user=DB_LOGIN,
                                                   password=DB_PASSWORD,
                                                   maxsize=10,
                                                   db=DB_NAME,
                                                   loop=loop))
        db_pool = loop.run_until_complete(pool_fut)

        players_online = PlayerService(db_pool)
        api_accessor = ApiAccessor()
        event_service = EventService(api_accessor)
        achievement_service = AchievementService(api_accessor)
        game_stats_service = GameStatsService(event_service, achievement_service)

        natpacket_server = NatPacketServer(addresses=config.LOBBY_NAT_ADDRESSES, loop=loop)
        loop.run_until_complete(natpacket_server.listen())
        server.NatPacketServer.instance = natpacket_server

        games = GameService(players_online, game_stats_service)
        matchmaker_queue = MatchmakerQueue('ladder1v1', players_online, games)
        players_online.ladder_queue = matchmaker_queue

        ctrl_server = loop.run_until_complete(server.run_control_server(loop, players_online, games))

        lobby_server = server.run_lobby_server(('', 8001),
                                    players_online,
                                    games,
                                    loop)

        for sock in lobby_server.sockets: