Citation Envoyé par Coussati Voir le message
je viens de me rappeler de la technologie que j'ai une fois utilisé qui permet au serveur d'envoyer une notification au client, qui donc réclame le nouveau contenu, et n'est plus obligé d'interroger constament le serveur

il s'agit de : Server-Sent Events (SSE)

mais tout bizarrement, peu ou personne n'en parle, sur le forum php non plus ...

on peut le mettre en place je suppose avec un compo idhttp ?
je ne connaissais pas SSE, mais en fait c'est aussi une connexion persistante comme les WS, sauf que seul le serveur peut envoyer des données, et uniquement en texte, alors que les WS peuvent envoyer des données binaires et dans les deux sens.

tu as ici un exemple PHP, tout comme les WS il faut une application serveur (PHP, Delphi...peu importe)

tu pourrais aussi ruser...mais je suppose que cela présente des limitations. dans une requête HTTP classique il est possible de répondre par Chunks, c'est utilisé quand tu dois produire des données dont tu ne connais pas la taille finale à l'avance...du coup tu les envoies par paquets
https://fr.wikipedia.org/wiki/Chunked_transfer_encoding

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
HTTP/1.1 200 OK\r\n
Content-Type: text/plain\r\n
Transfer-Encoding: chunked\r\n
\r\n
26\r\n
Voici les données du premier morceau\r\n\r\n
1C\r\n
et voici un second morceau\r\n\r\n
20\r\n
et voici deux derniers morceaux \r\n
12\r\n
sans saut de ligne\r\n
0\r\n
\r\n
dans l'exemple ci-dessus, la réponse "Tranfer-Encoding: chunked" active ce mode, et tu as la taille des données en hexa suivi des données...donc tu pourrais imaginer conserver la connexion active et envoyer les nouveaux messages au fur et à mesure avec des flush()...mais je ne suis pas certain qu'il soit possible en Javascript de lire les données au fur et à mesure...voici quelques échanges sur le sujet https://stackoverflow.com/questions/...ked-response-i

sous Delphi, il me semble que Indy possède un évènement OnWork ou un truc comme ça qui permet peut-être de choper les infos au fur et à mesure.

mais je suppose qu'à un moment donné ou à un autre la connexion va sauter (timeout PHP ou timeout du navigateur)...à tester