2016-12-10 2 views
0

Я довольно новый для этого ...Поддерживать открытую сессию с помощью запроса

У меня есть следующий код:

request("http://somePythonServer.com?param1=1&param2=2", function (err, response, body) { 
     if (err){ 
     console.error(err); 
     next(err); 
     } 
     console.log("Response Ended - SUCCESS"); 
}); 

Этот запрос был сделан каждый раз с различными параметрами и значениями и в настоящее время новое соединение открывается каждый раз, когда я его запускаю.

Мой вопрос заключается в том, как поддерживать открытое соединение?

EDIT: У меня есть контроль как на отправке, так и на приемном конце запроса.

МОЙ ЦЕЛЬ: Я пытаюсь увеличить скорость между двумя серверами (NodeJS отправляет HTTP GET на простой HTTP-сервер python). Я хочу, чтобы соединение между этими двумя оставалось открытым в любое время, чтобы запросы быть как можно быстрее.

+0

Какой проблемы вы пытаетесь решить, когда вы говорите «как поддерживать открытое соединение»? Вы просто вызываете 'request()', и соединение открыто для вас автоматически, поэтому для вас нет дополнительной работы, поэтому я не знаю, какую проблему вы действительно пытаетесь решить? – jfriend00

+0

@ jfriend00 Я пытаюсь увеличить скорость между двумя серверами (NodeJS отправляет HTTP GET на простой HTTP-сервер python) Я хочу, чтобы связь между этими двумя оставалась открытой во все времена. – TBE

ответ

-1

если ваш вопрос об использовании HTTP поддержания активности

, то вы должны повернуть поддерживать на в HTTP-агент будет повторно использовать соединение по каждому запросу. может быть что-то вроде это поможет вам

https://github.com/node-modules/agentkeepalive

если ваш вопрос о сохранении сеанса: то вы должны назвать это каждые несколько минут.

вам нужен куков

см https://github.com/request/request (поиск на странице куки)

он говорит:

Cookies отключены по умолчанию (иначе, они будут использоваться в последующих запросах). Чтобы включить файлы cookie, установите jar в true (либо по умолчанию, либо по умолчанию).

var request = request.defaults({jar: true}) 
request('http://www.google.com', function() { 
    request('http://images.google.com') 
}) 

есть гораздо больше возможностей, связанных с печеньем

сессии просто печенье с некоторым идентификатором сессии

+0

Cookies предназначены для сохранения состояния клиента от одного запроса к другому, но, похоже, не имеют ничего общего с тем, что OP спрашивает о «поддержании открытого соединения». – jfriend00

+0

@ jfriend00 вы можете уточнить? Я действительно не возражаю, как это сделать, куки-файлами или keep-alive, пока мне не придется открывать новое соединение каждый раз, когда я использую 'request' – TBE

+0

keep-alive и cookies - это две разные вещи , keep-alive - использовать одно и то же TCP-соединение при создании нескольких HTTP-запросов. файлы cookie должны иметь один и тот же сеанс при вызове URL. –

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