LIBEVENT HTTP服务器和压缩?

我使用libevent2在我的应用程序来承载一个HTTP服务器。 我不能找到一个内置的方式来压缩输出。

这些都是我考虑的选项:

  1. 应用的gzip /发送响应之前在我的应用程序中使用的zlib压缩放气
  2. 哈克的libevent的http.c揭露evhttp_connection-> bufev(该bufferevent对象),并申请传出数据zlib的过滤器

(双方念从Accept-Encoding头所支持的压缩格式)

有我俯瞰一些更简单的方法,或者这是相当多了吗?

--------------解决方案-------------

我用这个小动作来获得evhttp_connection,这是正确的旁边你想要的指针的文件描述符。 这是一个讨厌的黑客,但其实很简单,也更容易了重新构建的libevent。 它已根据x86_64的测试,运行良好。

static void
send_document_cb(struct evhttp_request *req, void *arg)
{
// ....

struct evhttp_connection *this_connection;
this_connection = evhttp_request_get_connection(req);

int *tricky;
tricky = (((int *)this_connection) + 4);
int fd = *tricky;

printf("fd: %i\n", fd);

// ....
}

综观(下)的结构定义,看来你想应该是用(((无效*)this_connection)+ 8)或非常类似的东西访问的bufev。

struct evhttp_connection {
TAILQ_ENTRY(evhttp_connection) next;

evutil_socket_t fd;
struct bufferevent *bufev;

...
}

分类:HTTP 时间:2015-03-15 人气:0
本文关键词: HTTP,libevent的
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.875 (s). 10 q(s)