2009-04-30 2 views
1

Я пытаюсь использовать соединение keep-alive mongoose, но кажется, что mongoose закрывает соединение первым.Как сохранить связь на веб-сервере mongoose

Я изменил embed.c, чтобы отправить обратно соединение: keep-alive. Соединение по-прежнему закрыто после ответа.

[email protected]:~$ nc 127.0.0.1 9999 
GET /test_get_request_info HTTP/1.1 
Connection: keep-alive 

HTTP/1.1 200 OK 
Content-Type: text/plain 
Connection: keep-alive 

Method: [GET] 
URI: [/test_get_request_info] 
HTTP version: [1/1] 
HTTP header [Connection]: [keep-alive] 
Query string: [] 
POST data: [] 
Remote IP: [2130706433] 
Remote port: [56719] 
Remote user: []   <-----------------connection closed, nc returns 
[email protected]:~$ 
+0

Для таких специализированных вопросов вам может быть лучше размещать сообщения в группе поддержки Mongoose по адресу http://groups.google.com/group/mongoose-users/topics – 2009-04-30 08:34:25

ответ

6

В настоящее время невозможно обойтись без изменения кода Mongoose. Вы можете попробовать сделать трюк, в analyze_request функции(), установите Keep-Alive флаг:

} else if ((cb = find_callback(conn->ctx, FALSE, uri, -1)) != NULL) { 
     if ((strcmp(ri->request_method, "POST") != 0 && 
      strcmp(ri->request_method, "PUT") != 0) || 
      handle_request_body(conn, -1)) { 
       cb->func(conn, &conn->request_info, cb->user_data); 
       conn->keep_alive = TRUE; // ADD THIS LINE 
      } 

Там должно быть лучше, механизм выполнения этого от обратного вызова, хотя.

Смежные вопросы