Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Long polling lijkt op polling, al is er 1 verschil. De client stuurt ook in dit geval een request naar de server, in dit geval de API van Regterschot Racing. De server krijgt deze request binnen maar stuurt niet gelijk een response terug. De server wacht echter tot hij nieuwe info heeft. Op het moment dat dat zo is stuurt hij deze info terug aan de client. De client stuurt op dat moment gelijk weer een nieuwe request.


Server

...

-sent events (SSE)

Bij SSE stuurt de client een request naar een server. De server opent dan een connectie tussen de twee. De server stuurt niks terug tot het moment dat deze nieuwe data krijgt. Op het moment dat deze nieuwe data krijgt stuurt hij deze naar de client. De connectie wordt echter niet gesloten en blijft dus bestaan. Dit zorgt ervoor dat de client niet opnieuw een request hoeft te sturen, maar gewoon kan wachten op de nieuwe data van de server.

...

Long polling is een soort van opvolger en in dit geval een betere opvolger van polling. Long polling begint op dezelfde manier. Er wordt een request gestuurd naar de server vanaf de client. Hier is ook gelijk al te zien wat er beter is aan long polling ten opzichte van 'gewoon' polling. Bij polling wordt er een response gestuurd. Deze response is zo snel mogelijk, dus of met data, of er is geen nieuwe data. Long polling wacht tot er nieuwe data is. Is er nog geen data, dan ook geen response. Is er wel nieuwe data, dan krijg je ook de response. Zo snel als de response binnenkomt wordt er ook weer een nieuwe request gestuurd ,zodat de mogelijk nieuwe data weer zo snel mogelijk binnenkomt. Bij long polling is het echter wel zo dat een server of client soms denkt dat de connection te lang open heeft gestaan en dat deze connection na een tijd gesloten wordt. Het gebruikt meer middelen dan bijvoorbeeld een websocket. Ook kan het zijn dat er meerdere poll requests open staan naar een server en de volgorde van de berichten niet klopt.

Server

...

-sent events websockets

Server Sent Events en Websockets -sent events en websockets lijken veel op elkaar, ook is er in dit geval één kopje voor de twee samen. Een aantal verschillen tussen de twee, is dat SSE over HTTP gebruikt kan worden, terwijl websockets hun eigen protocol hebben. Een groot verschil tussen de twee die echt een verschil maaktdeze data transfer technieken, is wie requests en responses kan sturen. Bij SSE wordt er één keer een request gestuurd naar de server. Deze request is een aanvraag om te verbinden. Daarna kan alleen de server berichten terug sturen. De client kan geen berichten naar de server sturen. Dit is ook waar SSE voor gemaakt is. Websockets , die wel berichten kunnen sturen naar de server als er eenmaal een connectie is geopend , zouden in dit geval dan een overkill zijn. Er zijn nog wel andere voor zijn overbodig. Daarnaast zijn er andere voor- en nadelen te benoemen, zoals dat SSE maar een maximaal maximum aantal van open connecties mag hebben , maar ook hiervoor zijn Voor dit probleem zijn er oplossingen te bedenken. Echter is dit ook geen probleem voor deze applicatie.


Conclusie

Als we los kijken naar alle systemen dan zijn er twee die er gelijk uitspringen. Dit zijn de Server Sent Events en Websockets. Deze twee, veel op elkaar lijkende technieken, zijn toch wel de twee die ons het beste lijken. Een websocket en een server side event service zijn de twee keuze's die het meest real time zijn zonder dat deze technieken extra middelen gebruiken, of meer middelen dan nodig. 

...