Comment puis-je définir un délai d'attente pour le client, de connexions http en node.js
Je suis en train d'écrire un node.js application qui a besoin de parler à un serveur. Il établit une connexion http avec le code suivant:
var client = http.createClient(u.port, u.hostname, u.secure);
client.on("error", function(exception) {
logger.error("error from client");
});
var request = client.request(method, u.path, headers);
Je ne vois pas l'option dans le node.js la documentation pour la fixation d'un délai d'attente de la connexion, et il semble être de 20 secondes par défaut. Le problème que je vais avoir, c'est que j'ai les utilisateurs en Chine sur ce qui semble être un processus lent ou feuilletée réseau, qui peuvent parfois se heurter à la temporisation de la connexion à notre centre de données aux états-unis. J'aimerais augmenter le délai d'attente de 1 minute, pour voir si cela résout-il pour eux.
Est-il un moyen de le faire node.js?
Double Possible de Comment définir un délai d'attente sur un serveur http.demande() dans le Nœud?
OriginalL'auteur Dan List | 2010-08-27
Vous devez vous connecter pour publier un commentaire.
Essayer
OriginalL'auteur Matjaz Lipus
Je pense que vous pouvez faire quelque chose comme:
demande.connexion renvoie le net.Objet de flux de données associé à la connexion.
et net.Cours d'eau est une méthode setTimeout.
La droite. Ok, alors ... je vais avoir un autre chalut par un code. Peut-être la peine de vérifier comment/si certains le nœud cadres de gérer cela.
Merci pour régler un WebSocket proxy problème pour moi 😉 Les connexions étaient morts après une minute ou deux.
OriginalL'auteur Toby Hede
Il n'y a aucune compétence dans le Nœud de augmentation délai de connexion. Car, généralement, délai de connexion (c'est à dire l'établissement de la connexion timeout) est OS à l'échelle de réglage pour toutes les applications (par exemple, les 21 secondes Windows, de 20 à 120 secondes dans Linux). Voir aussi Timouts dans la trousse de Demande de.
En revanche, ce Noeud permet de définir une diminution de délai d'expiration et interrompre la connexion, même dans le cas où la connexion n'est pas encore établie.
Le plus de délais d'attente (en cas de connexion a été établie) peut être contrôlée en fonction de la documentation (voir
demande.setTimeout
,socket.setTimeout
).OriginalL'auteur ruvim
Vous avez à attendre pour le client socket connexion puisse être établie premier, avant de définir le délai d'expiration. Pour ce faire, ajoutez une fonction de rappel pour la prise de l'événement:
Voir cette réponse.
OriginalL'auteur Pavel