Immagina di voler creare un gioco multiplayer in tempo reale, con HTML5 (client) e node.js (server).WebRTC quello giusto? (gioco multiplayer in tempo reale)
Ho bisogno di trasportare i dati molto velocemente dal server ai client e viceversa.
In un'applicazione nativa vorrei usare UDP
per la maggior parte dei dati (posizione del giocatore, ...), perché è molto più veloce di TCP
ed è acritico quando viene perso.
In HTML5
Posso (solo) utilizzare WebSockets
. WebSockets è in cima al TCP e quindi non abbastanza veloce per una buona prestazione.
Ho sentito parlare di WebRTC
, ma non so se questa potrebbe essere la soluzione per questo problema.
Qualcuno ha esperienza con esso?
(lo so, che WebRTC è ancora supportato per la maggior browser, ma questo non importa a me.)
Sei sicuro che i web socket siano troppo lenti per il tuo caso d'uso? Un socket tcp viene tenuto aperto per tutta la durata della sessione websocket in modo da non doversi preoccupare del sovraccarico della connessione per ciascun messaggio. – simonc
TCP: consegna affidabile di messaggi; tutti i dati vengono confermati La consegna di tutti i dati viene gestita e i dati persi vengono ritrasmessi automaticamente. UDP: inaffidabile, consegna best-effort senza conferme Quindi il TCP è semplicemente la tecnica sbagliata per questo caso d'uso. – appsthatmatter
Provate a implementarlo usando WebSockets e misurate per vedere se è davvero troppo lento (inutile dirlo, estrapola l'implementazione del trasporto in modo che se WebSockets risultasse insoddisfacente, potete usare qualcos'altro senza dover scartare un sacco di codice). In questo momento stai ottimizzando prematuramente. – ebohlman