WebSockets urmatoarea generatie de aplicatii real time dupa SPA

Sunt mai rapide decat SPA fiindca numai comunica prin JSON cu serverul ci prin stream-uri de octeti, fiind astfel si mai securizate, un exemplu simplu in .net core.


1 Like

Buzzfeed: 10 ways to use WebSockets for your NextGen SPA app

sorry - I got triggered when I read your title :slight_smile:

Acea optimizare pe care ai menționat-o e neglijabilă pentru majoritatea muritorilor de rând. Și, din păcate (sau fericire), nu se obține niciun plus de securitate.

În opinia mea, cuvântul cheie e full-duplex :slight_smile:

1 Like

You mean the full HTTP/2 standard?

EDIT:

good read: Will WebSocket survive HTTP/2?

Nu-s chiar în temă cu HTTP/2, dar las link-ul ăsta - o discuție despre HTTP/2 și WebSockets (pe scurt - o tehnologie nu o înlocuiește pe cealaltă):

1 Like

E mai rapid ca placa de rețea a multor calculatoare. Faza e că sunt puține cazurile în care cineva va lucra direct cu websockets.

Not quite the same thing.

Push-ul din http/2 e un fel de prefetch controlat de server, nu comunicare two-way cum ai avea pe un socket ws sau chiar Unix.

Ce e bine la http/2 e că e backwards compatible. Aplicațiile o să meargă în continuare, poate mai puțin performant. Pe când o trecere pe ws e alta chestie complet.

Cat despre aplicații web in totalitate pe ws, pare o chestie făcută să dea programatorilor coșmaruri :smiley:

1 Like

Asa este insa pentru lucruri uzuale SSE pare varianta cea mai clean:

https://medium.com/@whale_eat_squid/why-http-2-isnt-the-answer-35ba28ad8dc3

La fel cum zice si in articol - depinde de context.

Chiar asa. Am nevoie sa implementez asa ceva. Am folosit socket.io in trecut.
Care este cel mai simplu si compatibil framework - pentru NodeJS?

https://github.com/socketio/socket.io site-ul lor vad ca e picat.

Socket.io functioneaza OK. Nu l-am vazut inca la cateva mii de conexiuni, insa sper sa nu fie prea flămând.

Am folosit socket.io intr-o aplicatie f. dinamică care avea Redis pe server si pot sa spun ca nu m-a încântat.
Până la urmă Firebase a fost mai util.
Asta se întâmpla prin 2013.

@George_Ilie,
Ce probleme ai întâlnit?

  • consum mare de memorie/CPU?
  • probleme la scalare?
  • dificil de configurat orice noua implementare?
1 Like

Scuze pentru late reply.
Am avut o aplicatie unde se folosea drag and drop si chat in timp real.
Problema a fost ca nu se sincroniza indeajuns de bine.
Ordinea evenimentelor transmise intre utilizatori nu era cea corecta in unele cazuri si se crea confuzie.

1 Like

Da, socket.io face figuri de genul dacă cumva ai ceva sincron în codul serverului. Totul trebuie scris cu .then sau async/await, chiar și for-urile în funcții. În rest nu se pune problema să fie lag sau alte probleme sub căteva sute de clienți dacă serverul și fiecare client e ok.

Firebase, parse, deepstream, socketcluster (cu pubnub,wamp, ceva MQ) sunt soluții care integrează websockets/uwebsockets și au fallback-uri testate și toate cele care rezolvă problemele pe care le întâlnește un programator dacă se apucă să folosească websockets fără să aibe de undeva experiență cel puțin cu sockets și pub/sub.

Se poate sa fi facut ceva gresit in cod. Aveam Redis pe server si ambele tehnologii erau noi pentru mine la vremea aia.
Totusi n-am mai avut probleme cu socket.io in aplicatii timp chat. Decat in combinatia respectiva.