我有这个使用猫鼬的服务器,它接受一些请求,解析信息,执行操作并返回结果。
例如,我可以这样查询它 server:port/action?arg1=test&arg2=...
我的问题是,每当我查询服务器时,我只会得到“MG_OPEN_FILE”事件。对于每个请求,我都会得到 3 个。
我读到在 http 查询中有一些可能是正常的,但这里的问题是我没有任何“MG_NEW_REQUEST”事件。
基本上,每当我启动服务器时,第一个连接(以及之后的所有连接)总是返回以下事件:MG_OPEN_FILE
MG_OPEN_FILE
MG_OPEN_FILE
MG_REQUEST_COMPLETE
我这样称呼我的服务器:
int main(int argc, char* argv[]) {
struct mg_context *ctx;
const char *options[] = {"listening_ports", "8080", "num_threads","10", NULL};
ctx = mg_start(&callback, NULL, options);
while(1){
getchar(); // Wait until user hits "enter"
}
mg_stop(ctx);
return 0;
}
回调函数以:
static void *callback(enum mg_event event, struct mg_connection *conn)
{
const struct mg_request_info *request_info = mg_get_request_info(conn);
if (event == MG_NEW_REQUEST)
{
但这始终是“MG_OPEN_FILE”事件,我不知道原因:(因此,如果有人对此原因有任何想法,我将非常感激!