Puncte:0

Standardul protocolului http acceptă sondaje lungi?

drapel ua

Am citit recent despre conceptul de sondaj lung care poate fi folosit cu http. Vreau să înțeleg, dacă vreun standard de protocol http în sine acceptă conceptul de interogare lungă, astfel încât, în funcție de modul în care clientul configurează conexiunea http, serverul se poate comporta într-o manieră de sondare scurtă sau într-o manieră de sondare lungă, astfel încât, de fapt, unii clienți se pot conecta în modul de interogare scurtă și unii clienți se pot conecta în modul de interogare lungă.

Orice exemplu de cod în java ar fi util.

drapel ng
Este la latitudinea serverului atunci când vrea să oprească conexiunea. Atât de mult timp expirat pentru sondaj într-o aplicație ar putea fi diferit de altundeva.
BioLogic avatar
drapel ua
@oligofren: Deci, cum ar ști clientul că conexiunea anterioară a fost întreruptă și că trebuie să stabilească din nou conexiunea de la zero?. -- Mulțumiri.
drapel ng
Când creați o conexiune, primiți de obicei și handlere de evenimente asociate conexiunii. De obicei, o interfață precum `connection.on(eventName, eventHandler)` ar permite clientului să fie informat când socket-ul se închide/este resetat etc. Deci, dacă serverul decide să oprească o conexiune (deoarece ar putea fi un proces zombie) pentru a curăța /conserva resursele, clientul va afla imediat. Aceasta nu este la nivel de aplicație (HTTP), ci mai jos. Uitați-vă la prize de rețea: https://en.wikipedia.org/wiki/Network_socket
drapel ng
Rețineți că o conexiune și o solicitare sunt două lucruri diferite. O singură conexiune poate gestiona mai multe solicitări pe o perioadă lungă de timp. Sondajul lung nu se referă la conexiune, ci la solicitările HTTP.
Puncte:1
drapel us

Sondajul lung înseamnă că răspunsul la cerere nu este trimis imediat, doar atunci când este disponibil. HTTP ca protocol nu are cerințe privind timpul pe care ar trebui să-l ia generarea răspunsului.

Clientul decide cât timp este dispus să aștepte răspunsul serverului odată ce face o solicitare HTTP.

În mod similar, serverul HTTP are libertatea de a trimite răspuns în orice moment după ce cererea HTTP a fost trimisă.

De exemplu:

Clientul trimite o solicitare HTTP și așteaptă răspunsul timp de 5 minute. Dacă nu primește un răspuns în cinci minute, cererea expiră. În scenariul de sondaj lung, clientul trimite o altă solicitare HTTP și așa mai departe.

Respectiv pe partea serverului, bucla de procesare a cererii citește cererea HTTP și apoi așteaptă ca o entitate să genereze sarcina utilă de răspuns, pe care apoi o trimite înapoi clientului.

Clienții nu pot controla modul în care funcționează serverele. Nu există „cereri lungi de sondaj” ca concept concret asupra clienților.

Există doar solicitări HTTP, unde serverul decide când să trimită răspunsul, și clienții care decid cât de mult sunt dispuși să aștepte.

BioLogic avatar
drapel ua
Mulțumiri. Există vreo API pe care clientul îl poate folosi pentru a cunoaște parametrii serverului, de exemplu: dacă serverul a implementat un sondaj lung, pentru câtă durată, serverul deține conexiunea în medie etc. pentru ca clientul să își ajusteze parametrii pentru o performanță mai bună.
drapel us
Nu cunosc un astfel de API. În cazurile de utilizare pe care le-am văzut, este pur și simplu un contract implicit între client și server.
BioLogic avatar
drapel ua
Ai putea te rog să arunci o privire la o altă întrebare a mea de pe acest forum. Sunt nou pe acest forum. Multumesc mult!
drapel ng
@BioLogic Nu uitați să acceptați răspunsul, dacă răspunde la întrebarea dvs.
Puncte:0
drapel ng

Nu există așa ceva ca sondaj lung în HTTP. Sondajul lung este a folosire inteligentă (abuz). de HTTP, nu o caracteristică a HTTP.

Deoarece HTTP nu știe nimic despre sondaje lungi, nu poate exista o modalitate standard de a verifica dacă există suport.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.