É possível usar a compactação gzip com o Server-Sent Events (SSE)?

Gostaria de saber se é possível ativar a compactação gzip para eventos enviados pelo servidor (SSE; tipo de conteúdo: texto / fluxo de eventos).

Parece que é possível, de acordo com este livro:http://chimera.labs.oreilly.com/books/1230000000545/ch16.html

Mas não consigo encontrar nenhum exemplo de SSE com compressão gzip. Tentei enviar mensagens compactadas com gzip com o campo de cabeçalho de respostaCodificação de Conteúdo defina como "gzip" sem sucesso.

Para experimentar o SSE, estou testando um pequeno aplicativo da Web feito em Python com o framework framework + gevent; Estou apenas executando o servidor WSGI de garrafa:

@bottle.get('/data_stream')
def stream_data():
    bottle.response.content_type = "text/event-stream"
    bottle.response.add_header("Connection", "keep-alive")
    bottle.response.add_header("Cache-Control", "no-cache")
    bottle.response.add_header("Content-Encoding", "gzip")
    while True:
        # new_data is a gevent AsyncResult object,
        # .get() just returns a data string when new
        # data is available
        data = new_data.get()
        yield zlib.compress("data: %s\n\n" % data)
        #yield "data: %s\n\n" % data

O código sem compactação (última linha, comentado) e sem o campo de cabeçalho de codificação de conteúdo gzip funciona como um encanto.

EDITAR: graças à resposta e a esta outra pergunta:Python: Criando um arquivo gzip'd de streaming?, Consegui resolver o problema:

@bottle.route("/stream")
def stream_data():
    compressed_stream = zlib.compressobj()
    bottle.response.content_type = "text/event-stream"
    bottle.response.add_header("Connection", "keep-alive")
    bottle.response.add_header("Cache-Control", "no-cache, must-revalidate")
    bottle.response.add_header("Content-Encoding", "deflate")
    bottle.response.add_header("Transfer-Encoding", "chunked")
    while True:
        data = new_data.get()
        yield compressed_stream.compress("data: %s\n\n" % data)
        yield compressed_stream.flush(zlib.Z_SYNC_FLUSH)

questionAnswers(2)

yourAnswerToTheQuestion