问题标签 [libevent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1352 浏览

http - Libevent HTTP 服务器和压缩?

我在我的应用程序中使用 libevent2 来托管一个 http 服务器。我找不到压缩输出的内置方法。

这些是我正在考虑的选项:

  1. 在发送响应之前,在我的应用程序中使用 zlib 应用 gzip/deflate 压缩
  2. 破解 libevent 的 http.c 以暴露 evhttp_connection->bufev(bufferevent 对象),并对传出数据应用 zlib 过滤器

(两者都从 Accept-Encoding 标头中读取支持的压缩格式)

有没有更简单的方法我可以忽略,或者这差不多?

0 投票
3 回答
9145 浏览

c++ - 如何使用 Visual Studio 2008 构建 libevent 2.0.10 版

有人对使用 Visual Studio 2008 构建 libevent-2.0.10 有明确的说明吗?

0 投票
1 回答
4300 浏览

c++ - nodejs 与运行 libevent 有何不同?

我很好奇是什么让 nodeJS 获得了它现在获得的超级并发性。我实际上并没有太多地使用其中任何一个,只是在空闲时间玩了两个。

听起来节点承诺您可以设置它的 1000 个连接,即使使用 libevent 也可以做到这一点,比如在 C++ 中,不是吗?

0 投票
3 回答
5530 浏览

linux - 使用 libevent2 处理文件 I/O 的问题

我使用 libevent2 有一段时间了,但通常我用它来处理网络 I/O(使用套接字)。现在我需要阅读许多不同的文件,所以我也想使用它。我创建了这段代码:

不幸的是,它不起作用。尝试添加事件时收到此消息:

[警告] fd 7 上的 Epoll ADD(1) 失败。旧事件为 0;读取更改为 1(添加);写入更改为 0(无):不允许操作添加文件事件:不允许操作

该文件存在并具有读/写权限。

任何人都知道如何使用 libevent 处理文件 IO?我也想过缓冲事件,但在 API 中只有函数 bufferevent_socket_new() 在这里不适用。

提前致谢。

0 投票
3 回答
4175 浏览

c++ - 使用 libevent 或 boost::asio 的单线程中的多个 tcp 连接。这是可能的?

是否可以使用 libevent 在一个线程中创建到不同服务器的多个 tcp 连接?你能写一个这样的任务的示例实现吗?

我已经这样做了,但不确定它是否正确:

另外,类似的可以使用 boost::asio? 例子?)

0 投票
1 回答
5206 浏览

php - 带有 libevent 的多进程 php

我可以使用 libevent 制作一个简单的 php websocket 服务器,但是当我尝试使其成为多处理时我被卡住了。

例如这是单一处理

但是当我在函数 ev_read 中这样做时

它不发送数据...

那么如何制作一个多处理 php 套接字服务器呢?

0 投票
3 回答
1486 浏览

c++ - 如果我想要事件驱动服务器,该使用什么 libevent 或 libev?

我想使用事件驱动库之一制作基本的聊天服务器。但是选择什么?libevent 或 libev 哪个更好?哪个有更好的 c++ 支持?哪个符文在 Windows 中更好?什么更快?更快地开发和理解

0 投票
1 回答
2764 浏览

c++ - 如何将 libusb 与 libevent 一起使用?

我正在使用 libevent 编写一个事件驱动的应用程序,我需要使用 libusb-1.0 进行 USB 传输。

我想使用libusb_get_pollfds来获取文件描述符列表(在 中fds)并将它们添加到 libevent 中,如下所示:

另外,我使用libusb_set_pollfd_notifierslibusb_fds_events.

问题是我在 libusb 返回的列表上得到了许多奇怪的 fds(例如,我得到stdin(!)很多次,事件等于 0)。

我是否以正确的方式使用它?

0 投票
1 回答
507 浏览

c - 用 C 编写异步事件服务器的推荐模式

我正在用 C 语言编写我的第一个单线程、单进程服务器,使用 kqueue() / epoll() 来处理异步事件分派。正如人们所预料的那样,跟踪控制流比在阻塞服务器中要困难得多。

是否有一种常见的模式(甚至可能有一个名字)人们用来避免回调驱动的协议实现变成一个巨大的纠结的毛球?

或者,是否有任何用 C 语言编写的非阻塞服务器,其源代码很容易阅读?

任何输入将不胜感激!

更多想法:

很多麻烦似乎来自处理 IO 缓冲的需要。缓冲区填充/排出和单个状态转换之间没有必要的对应关系。缓冲区填充/排水可能对应于 [0, N] 状态转换。)

我看过 libev(此处的文档),它看起来是一个很棒的工具,还有 libevent,它看起来不那么令人兴奋但仍然有用,但它们都没有真正回答这个问题:我如何以一种方式管理控制流不是非常不透明。

0 投票
3 回答
2588 浏览

c++ - C++ libevent 使用(内存泄漏和删除操作符)

我有两个文件:

当我编译(g++ event_test_delete.cpp -levent -o event_test_delete.o) event_test_delete.cpp 时,我得到一个错误

但是当我编译g++ event_test_free.cpp -levent -o event_test_free.oevent_test_free.cpp 我没有得到同样的错误,为什么?

第二个问题是(使用 valgrind)为什么会出现内存泄漏?

第一个文件的 Valgrind 输出:(为什么这里是一个Mismatched free() / delete / delete []?)

对于第二个文件