def create_server(self,
                      loop=None,
                      as_coroutine=False,
                      protocol_factory=None,
                      **server_config):
        if loop is None:
            import asyncio
            loop = asyncio.get_event_loop()
        if protocol_factory is None:
            from growler.aio import GrowlerHTTPProtocol
            protocol_factory = GrowlerHTTPProtocol.get_factory
        create_server = loop.create_server(
            protocol_factory(self, loop=loop),
            **server_config
        )
        if as_coroutine:
            return create_server
        else:
            return loop.run_until_complete(create_server)