NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s podporou uplatnění od 0 Kč. Více informací.

Diskuze: NodeJS server pro realtime chat?

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Neaktivní uživatel:30.4.2016 18:51

Čaute ve spolek. Jako maturitní práci jsem dělal sociální síť v Laravelu(PHP framework). Část zadání byla real-time chat, tak jsem vytvořil NodeJS server pro zprostředkování komunikace. Co jsem se dočetl tak je to standartní řešení. A teď k otázce, dostal jsem předběžné slovní hodnocení kde je cituji: "Diskutovat se dá o nutnosti nasazení NodeJS, Nutnost 'refreshovat' stránku pro aktualizaci stavu chatu se dá obejít za použití Ajaxu".Otázky jsou dvě, v případě že jako "AJAX" zde uvažujeme čistý JS, tak posílat každou sekundu dotaz na server zda-li se něco nezměnilo, je veliká zátěž jak na server tak i na klienta, ne? A druhá jak websocket, tak i NodeJS, konkrétně knihovna Socket.io používá AJAX pro komunikaci, nebo se mýlím? Není to nic kvůli čemu bych neprošel nebo tak něco, jen mě zajímá názor někoho, kdo s tím pracuje déle než jeden měsíc :D

Odpovědět
30.4.2016 18:51
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:30.4.2016 20:51

Je to zatez na server? - Ano a zbytecna.

Co pouziva socket.io ? Websockety a pro pripad nekompatibility tam ma nejak poresenej ten realtime, pravdepodobne neco jako klasickej ajax ... ale jiste to nevim, nestudoval jsem to do hloubky. (https://en.wikipedia.org/wiki/WebSocket)

Hlavni rozdil spociva prave v tom realtime ... zatimco get/post si musis o data rict, tady ti je muze server cpat jakmile jsou... proto realtime. Prece jenom, kdyby socket.io pouzivalo jen ajax, tak by moc nemelo smysl..

Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět
30.4.2016 20:51
Neaktivní uživatelský účet
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Jan Vargovský:30.4.2016 21:00

Nvm jak socket.io, ale ostatní real-time nástroje používaj WS -> SSE -> FF -> a pak až tady je AJAX jako nejhorší varianta.

 
Nahoru Odpovědět
30.4.2016 21:00
Avatar
Odpovídá na Jan Vargovský
Neaktivní uživatel:30.4.2016 21:27

Premyslim, kde jsem napsal neco, co by tomu neodpovidalo... mozna ta zminka o fallbacku, ktera nebyla uplne rozvedena... nicmene ja fakt nevim jakou ma secketio vnitrni strukturu, ajax nekde dole bude urcite, pro podporu totalnich vykopavek a co si vybere pokud neni websocket fakt netusim, mam pocit, ze websockety maji daleko lepsi podporu nez sse ... takze jestli ty sipky maji ukazovat smer podpory starsich browseru ... tak mi to moc nedava smysl (na druhou stranu, ty kdo nejedou sse jsou edge a iecko ) ... w/e co jsem rekl je v souladu s tim co pises ty... takze souhlasim, ale do hloubky to rozebirat nemuzu, websockety mam na seznamu hloubkoveho prostudovani az v nedohlednu

Nahoru Odpovědět
30.4.2016 21:27
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:30.4.2016 22:53

Děkuji za odpovědi :) Takže výsledek je, AJAX ne-e a Socket.io má větší browser support než web socket tím že využívá několik metod komunikace, mezi které zapadá i web socket a AJAX. Řešení dostane první a nejobsáhlejší odpověď :-) .

Nahoru Odpovědět
30.4.2016 22:53
Neaktivní uživatelský účet
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Jan Vargovský:1.5.2016 0:35

Jen jsem ujasnil ten fallback na "horší" technologie (ty uvozovky hlavně při WS -> SSE - tam fakt rozdíl není skoro žádný, jesti ti jde čistě jen o server=>client), protože to vypadalo, že si myslíš, že bez WS už neexistuje nic jiného než AJAX.

 
Nahoru Odpovědět
1.5.2016 0:35
Avatar
Odpovídá na Jan Vargovský
Neaktivní uživatel:1.5.2016 0:55

Krome skoro zadneho microsoftiho browseru tam neni rozdil :) http://caniuse.com/#… ... jinak okey... rozumim tvemu duvodu

Nahoru Odpovědět
1.5.2016 0:55
Neaktivní uživatelský účet
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Jan Vargovský:1.5.2016 11:38

Jde o to, že na WS potřebuješ celkem velké nároky, musí ti to podporovat server atd. Pro SSE nepotřebuješ v prakticky nic navíc. Navíc to u klienta lehce to nahradíš polyfillem (to se o WS uplně 100% říct nedá).

 
Nahoru Odpovědět
1.5.2016 11:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.