Я ищу какую-то документацию, которая определяет, сколько времени каждый браузер (IE6/IE7/FF2/FF3 и т.д.) будет ждать по запросу, прежде чем он просто уйдет и уйдет.
Мне не удалась это сделать.
Любые указатели?
Я ищу какую-то документацию, которая определяет, сколько времени каждый браузер (IE6/IE7/FF2/FF3 и т.д.) будет ждать по запросу, прежде чем он просто уйдет и уйдет.
Мне не удалась это сделать.
Любые указатели?
Мне удалось найти network.http.connect.timeout для более старых версий Mozilla:
Это предпочтение было одним из нескольких добавлено для низкоуровневой настройки сетевой код HTTP. После часть того же кода была значительно переписан в 2001 году, предпочтение перестало иметь какой-либо эффект (как отмечалось в all.js уже Сентябрь 2001 года).
В настоящее время определяется таймаут подключением к системному уровню время ожидания создания. Добавление пути к настроить это значение с низким приоритетом.
Казалось бы, что network.http.connect.timeout
ничего не сделал в течение некоторого времени.
Я также видел ссылки на network.http.request.timeout
, поэтому я сделал поиск Google. Результаты включают множество ссылок на людей, рекомендующих другим включить его в about:config
в то, что, по-видимому, ошибочно полагает, что оно действительно что-то делает, поскольку тот же поиск показывает это о: файлах конфигурации:
Pref удален (не используется). Ранее: HTTP-специфическая сеть тайм-аут. Значение по умолчанию 120.
та же страница содержит дополнительную информацию о network.http.connect.timeout
:
Pref удален (не используется). Ранее: определяет, как долго дождитесь ответа до регистрации тайм-аут. Значение по умолчанию 30.
Отказ от ответственности: информация о базе знаний MozillaZine может быть неправильной, неполной или устаревшей.
во-первых, я не думаю, что есть только одно решение вашей проблемы....
Как вы знаете, каждый браузер значительно отличается.
Но давайте посмотрим, сможем ли мы приблизиться к ответу, который вам нужен....
Я думаю, что IE может быть легко...
Проверить эту ссылку http://support.microsoft.com/kb/181050
Для Firefox попробуйте следующее:
Откройте Firefox и в адресной строке введите "about: config" (без кавычек). Оттуда прокрутите вниз до Network.http.keep-alive и убедитесь, что установлено значение "true". Если это не так, дважды щелкните по нему, и он перейдет от false к true. Теперь перейдите один ниже к network.http.keep-alive.timeout - и измените это число, дважды щелкнув его. если вы положите, скажем, 500, вы должны быть хорошими. сообщите нам, если это вообще поможет
После последнего обновления Firefox у нас была одна и та же проблема с таймаутом сеанса, и этот параметр помог решить эту проблему.
Мы можем управлять им с помощью параметра network.http.response.timeout
.
network.http.response.timeout
.network.http.response.timeout
и введите значение времени (в секундах), которое вы не хотите, чтобы ваш сеанс не был тайм-аут, в поле.Я пытался поддерживать соединение сокета с API-интерфейсом google chrome с удаленным экспресс-сервером и обнаружил, что заголовки запросов должны соответствовать настройкам соединения Node.JS native <net.socket>
.
Я устанавливаю объект headers на стороне клиента script со следующими параметрами:
/* ----- */
head = new headers();
head.append("Connnection", "keep-alive")
head.append("Keep-Alive", `timeout=${1*60*5}`) //in seconds, not milliseconds
/* apply more definitions to the header */
fetch(url, {
method: 'OPTIONS',
credentials: "include",
body: JSON.stringify(data),
cors: 'cors',
headers: head, //could be object literal too
cache: 'default'
})
.then(response=>{
....
}).catch(err=>{...});
И на моем экспресс-сервере я настраиваю свой маршрутизатор следующим образом:
router.head('absolute or regex', (request, response, next)=>{
req.setTimeout(1000*60*5, ()=>{
console.info("socket timed out");
});
console.info("Proceeding down the middleware chain link...\n\n");
next();
});
/*Keep the socket alive by enabling it on the server, with an optional
delay on the last packet sent
*/
server.on('connection', (socket)=>socket.setKeepAlive(true, 10))
Внимание
Пожалуйста, используйте здравый смысл и убедитесь, что пользователи, с которыми вы поддерживаете соединение сокетов, открыты для проверки и сериализации. Он работает и для Firefox, но он очень уязвим, если вы держите TCP-соединение открытым более 5 минут.
Я не уверен, как работают некоторые из менее известных браузеров, но я добавлю к этому ответу также информацию о браузере Microsoft.