kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Miguel L.
Miguel L.
Question

Cara mengatur batas waktu HTTP Keep-Alive di server nodejs

Saya sebenarnya sedang melakukan pengujian beban terhadap server ExpressJS, dan saya perhatikan bahwa respons yang dikirim oleh server menyertakan header "Connection: Keep-Alive" pada header. Sejauh yang saya pahami, koneksi akan tetap terbuka hingga server atau klien mengirimkan header "Connection: Tutup" pada header.

Pada beberapa implementasi, header "Connection: Keep-Alive" muncul dengan header "Keep-Alive" yang mengatur batas waktu koneksi dan jumlah maksimum permintaan berurutan yang dikirim melalui koneksi ini.

Sebagai contoh: "Keep-Alive: timeout=15, max=100"

Apakah ada cara (dan apakah relevan) untuk mengatur parameter ini pada server Express ?

Jika tidak, apakah Anda tahu bagaimana ExpressJS menangani hal ini?

Edit: Setelah melakukan beberapa penyelidikan, saya menemukan bahwa batas waktu default diatur di node standard http library:

socket.setTimeout(2 * 60 * 1000); // 2 minute timeout

Untuk mengubah ini:

var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end("Hello World");
}).on('connection', function(socket) {
  socket.setTimeout(10000);
}).listen(3000);

Bagaimanapun juga, masih terlihat sedikit aneh bagi saya bahwa server tidak mengirimkan petunjuk apa pun kepada klien mengenai batas waktunya.

Edit2: Terima kasih kepada josh3736 atas komentarnya.

setSocketKeepAlive tidak terkait dengan HTTP keep-alive. Ini adalah opsi tingkat TCP yang memungkinkan Anda untuk mendeteksi bahwa ujung koneksi yang lain telah hilang.

38 2012-09-29T09:15:40+00:00 1
Miguel L.
Miguel L.
Pertanyaan edit 10 Mei 2013 в 9:00
Pemrograman
http-headers
node.js
express
keep-alive
Solution / Answer
 dgo.a
dgo.a
20 November 2012 в 11:28
2012-11-20T23:28:47+00:00
Lebih
Sumber
Sunting
#17331549

Untuk Express 3:

var express = require('express');
var app = express();
var server = app.listen(5001);

server.on('connection', function(socket) {
  console.log("A new connection was made by a client.");
  socket.setTimeout(30 * 1000); 
  // 30 second timeout. Change this as you see fit.
});
 Community
Community
Jawaban edit 4 Agustus 2019 в 8:02
32
0
Related communities 1
Node.js Indonesia 🇮🇩
Node.js Indonesia 🇮🇩
11 549 pengguna
Indonesian NodeJs Developer Community Admin : - @khannedy - @endymuhardin Ninja JS: @julianalimin @kucingMumuBulatMeongMeongNyanCat
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
ALEX EPRST
Terdaftar 13 jam yang lalu
2
Daniel Gogov
Terdaftar 1 minggu yang lalu
3
工藤 芳則
Terdaftar 2 minggu yang lalu
4
Ирина Беляева
Terdaftar 2 minggu yang lalu
5
Darya Arsenyeva
Terdaftar 3 minggu yang lalu
ID
JA
KO
RU
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi