WebSockets urmatoarea generatie de aplicatii real time dupa SPA

websockets
realtimeapplication

(Adavidoaiei Dumitru-Cornel) #1

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.



(Ex. Dakull) #2

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

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


(Andrei) #3

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:


(Ex. Dakull) #4

You mean the full HTTP/2 standard?

EDIT:

good read: https://www.infoq.com/articles/websocket-and-http2-coexist


(Andrei) #5

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ă):


(István F.) #6

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.


(Horia Coman) #7

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:


(Ex. Dakull) #8

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

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


(George Ilie) #9

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


(Adavidoaiei Dumitru-Cornel) #10

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


(Catalin Banu) #11

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


(George Ilie) #12

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.


(Catalin Banu) #13

@George_Ilie,
Ce probleme ai întâlnit?

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

(George Ilie) #14

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.


(István F.) #15

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.


(George Ilie) #16

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.