示例#1
0
def create_echo_server(address, actor):
    '''Starts an echo server on a newly spawn actor'''
    server = TcpServer(actor.event_loop, address[0], address[1],
                       EchoServerProtocol)
    yield server.start_serving()
    actor.servers['echo'] = server
    actor.extra['echo-address'] = server.address
示例#2
0
文件: hooks.py 项目: xmnlab/minilab
def create_echo_server(address, actor):
    '''Starts an echo server on a newly spawn actor'''
    server = TcpServer(actor.event_loop, address[0], address[1],
                       EchoServerProtocol)
    yield server.start_serving()
    actor.servers['echo'] = server
    actor.extra['echo-address'] = server.address
示例#3
0
 def __call__(self, actor):
     """Starts an echo server on a newly spawn actor"""
     server = TcpServer(partial(Connection, EchoServerProtocol), actor._loop, self.address)
     yield from server.start_serving()
     actor.servers["echo"] = server
     actor.extra["echo-address"] = server.address
     actor.bind_event("stopping", self._stop_server)
     return actor
示例#4
0
def run_test_server(loop, consumer_factory, address=None):
    address = address or ('127.0.0.1', 0)
    server = TcpServer(loop, '127.0.0.1', 0,
                       consumer_factory=consumer_factory)
    try:
        yield server
    finally:
        server.stop_serving()
示例#5
0
 def __call__(self, actor):
     '''Starts an echo server on a newly spawn actor'''
     server = TcpServer(partial(Connection, EchoServerProtocol),
                        actor._loop, self.address)
     yield from server.start_serving()
     actor.servers['echo'] = server
     actor.extra['echo-address'] = server.address
     actor.bind_event('stopping', self._stop_server)
     return actor
示例#6
0
 def __call__(self, actor):
     '''Starts an echo server on a newly spawn actor'''
     address = self.address
     server = TcpServer(actor.event_loop, address[0], address[1],
                        EchoServerProtocol)
     yield server.start_serving()
     actor.servers['echo'] = server
     actor.extra['echo-address'] = server.address
     actor.bind_event('stopping', self._stop_server)
     yield actor
示例#7
0
 def __call__(self, actor):
     '''Starts an echo server on a newly spawn actor'''
     address = self.address
     server = TcpServer(actor.event_loop, address[0], address[1],
                        EchoServerProtocol)
     yield server.start_serving()
     actor.servers['echo'] = server
     actor.extra['echo-address'] = server.address
     actor.bind_event('stopping', self._stop_server)
     yield actor
示例#8
0
    def create_server(self, worker, sock, ssl=None):
        '''Create the Server Protocol which will listen for requests. It
uses the :meth:`protocol_consumer` method as the protocol consumer factory.'''
        cfg = self.cfg
        server = TcpServer(worker.event_loop,
                           sock=sock,
                           consumer_factory=self.protocol_consumer(),
                           max_connections=cfg.max_requests,
                           timeout=cfg.keep_alive,
                           name=self.name)
        for event in ('connection_made', 'pre_request', 'post_request',
                      'connection_lost'):
            callback = getattr(cfg, event)
            if callback != pass_through:
                server.bind_event(event, callback)
        server.start_serving(cfg.backlog, sslcontext=worker.params.ssl)
        return server
示例#9
0
 def test_echo_serve(self):
     loop = get_event_loop()
     server = TcpServer(loop, '127.0.0.1', 0, EchoServerProtocol)
     yield server.start_serving()
     sock = server.sock
     fn = sock.fileno()
     self.assertFalse(is_socket_closed(sock))
     client = Echo()
     address = sock.getsockname()
     result = yield client.request(address, b'Hello!')
     self.assertEqual(result, b'Hello!')
     self.assertEqual(server.concurrent_connections, 1)
     result = yield client.request(address, b'ciao')
     self.assertEqual(result, b'ciao')
     self.assertEqual(server.concurrent_connections, 1)
     yield server.stop_serving()
     yield async_while(3, lambda: not is_socket_closed(sock))
     self.assertTrue(is_socket_closed(sock))
示例#10
0
    def create_server(self, worker, sock, ssl=None):
        '''Create the Server Protocol which will listen for requests. It
uses the :meth:`protocol_consumer` method as the protocol consumer factory.'''
        cfg = self.cfg
        server = TcpServer(worker.event_loop,
                           sock=sock,
                           consumer_factory=self.protocol_consumer(),
                           max_connections=cfg.max_requests,
                           timeout=cfg.keep_alive,
                           name=self.name)
        for event in ('connection_made', 'pre_request', 'post_request',
                      'connection_lost'):
            callback = getattr(cfg, event)
            if callback != pass_through:
                server.bind_event(event, callback)
        server.start_serving(cfg.backlog, sslcontext=worker.params.ssl)
        return server
示例#11
0
 def server_factory(self, *args, **kw):
     '''Create a :class:`.TcpServer`.
     '''
     return TcpServer(*args, **kw)