Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Vývoj a provoz WebSocket serveru a RTP služeb – Zkušenosti a výkon

skorozacatecnik
verified
rating uzivatele
3. 12. 2017 11:28:25
Provozujete a vyvijite vlastni WebSocket server v PHP?
Nebo jste si uz alespon hrali s PHP WebSocket serverem a WS komunikaci?
Pokud ano, rad bych se zeptal na par cisel, kam az jste to vytunili?
- kolik pripojenych websocketu bezne/maximalne utahnete na jednom ws serveru?
- kolik prichozich/odchozich, pripadne jak velkych zprav dokazete zpracovat?
- kolik vam zabira ws server pameti pri beznem provozu a jake jsou spicky?
- pokud mate na ws serveru timery, v jakych minimalnich intervalech dokazete tikat?
Jeste par technickych dotazu:
- na jakem stroji provozujete ws server (orientacne HW, SW, verzi PHP, DB, atp.)
- ws server spoustite CRONem, primo jako proces apache hlidany serverem, nebo jako CLI?
- mate na ws serveru implementovanou autentizaci a autorizaci uzivatelu?
- mate u ws serveru k dispozici i workery, pouzivate forkovani nebo threadovani pri zpracovani komplikovanejsich ws pozadavku?
- streamujete pres websockety nejen data, ale i medialni obsah (fotky, videa, atp.)?
- provozujete nejakou sofistikovanejsi aplikaci postavenou na websocketech, jako treba uzivatelsky chat, notifikace o udalostech, ci jine RTP apps?
Je to hodne otazek najednou, vim. Snazil jsem se je definovat trochu obecneji, aby si i clovek, ktery s tim nema zatim zkusenosti, mohl udelat obrazek o tom, co vsechno to vykonove dokaze.
Budu rad, kdyz sem pridate nejen odpovedi a zkusenosti, ale i dotazy k WebSocketum - snad nas tu bude vic, kdo se tim uz nejakou chvili zabyva. Mohu poskytnout i nejaka vlastni cisla z par let provozu k porovnani. Prozatim se tu na WebTrhu WS moc neresi a zkusenosti z vyvoje ci implementace jsem tu take mnoho nenasel.
Diky vsem zucatnenym i pouhym posluchacum :)
3. 12. 2017 11:28:25
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315427
node
verified
rating uzivatele
(5 hodnocení)
3. 12. 2017 13:19:09
aerys/demo.php at master · amphp/aerys · GitHub
3. 12. 2017 13:19:09
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315426
skorozacatecnik
verified
rating uzivatele
5. 12. 2017 07:22:20
Napsal node;1427813
aerys/demo.php at master · amphp/aerys · GitHub
Diky node za odkaz, WS server ale mam naprogramovany, spis nejaka cisla z provozu k porovnani by pls nebyla?
Doufal jsem, ze se prida vic diskutujicich, ale WebSockety evidentne nejsou jeste tak moc pouzivane.
Pekny den vsem.
5. 12. 2017 07:22:20
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315425
node
verified
rating uzivatele
(5 hodnocení)
5. 12. 2017 10:35:26
"nejsou jeste tak moc pouzivane" - skor "nejsou uz tak moc pouzivane" :D
5. 12. 2017 10:35:26
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315424
skorozacatecnik
verified
rating uzivatele
5. 12. 2017 11:27:51
Napsal node;1428189
"nejsou jeste tak moc pouzivane" - skor "nejsou uz tak moc pouzivane" :D
Nejsem si jist, zda se bavime o tom samem.. WebSockety jsou i v HTML5, rfc December 2011, takze uplne na ustupu asi nebudou. Nemas na mysli klasicke otevrene spojeni, kterym muzes v JS a AJAXu udelat podobne veci?
Jsem skorozacatecnik, pravda :) ale jsem s WebSocketama spokojeny, protoze s minimalni zatezi serveru to utahne v realnem case stovky WebSocketu (full-duplex spojeni) - pri testech radove vyse. WS server ve standardnim provozu v mensi firme zpracuje neco mezi 200k - 500k zprav za hodinu (maximalni limity zatim neznam) a na serveru to neni temer videt.
Nedovedu si uplne predstavit napriklad klasickym AJAXem obstaravat stovky zprav za sekundu, ktere jsou ale odesilane ze serveru a je na ne potreba odpovidat. S websocketama to jde relativne dobre - muj dojem samozrejme :)
Proste mit moznost komunikovat obousmerne a odbavit pozadavek pres WS za cca 30us, misto HTTP za cca 20ms, mi prijde jako dost podstatny rozdil.
Proto mne zajimalo, zda ma nekdo take cisla z provozu, ale asi takove zateze resi vsichni jinak, nez pomoci WS.
5. 12. 2017 11:27:51
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315423
hm
verified
rating uzivatele
(20 hodnocení)
5. 12. 2017 11:31:30
websockety potrebujou multithreading na serveru, jinak pri vetsich zatezich, pri vic pripojenich uz zazivaj sileny zpomalovani, mam udelanej multithreadovej server v php (ale to potrebuje specialni verzi php), ale obecne uz bych php an tuhle technologii nepouzival, mnohem lepsi node.js ktery je na to nejakym zpusobem pripraveny lepe nez php... PHP uz ponekud v tehle oblasti ztraci... Jet ebsocketovej server v jedinym php vlakne je fakt sebevrazda i kdyz se to tak u malo navstevovanyho webu nemusi jevit... Ale zkus si do toho serveru pridat naky narocnejsi veci a 1000 lidi naraz a bude to v totalni kreci... Cesta je udelat ten multithreading, osobne vytvarim proste pro kazdyho cloveka vlastni vlakno, ale jde to pak skalovat ze treba jendo vlakno dela 10 lidi... Kdyz to narocnost apliakce dovoli...
jinak websockety opravdu an ustupu nejsou :) podle me prave sockety v nejake podbe, kliden te websocketove jsou budoucnost :)
5. 12. 2017 11:31:30
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315422
skorozacatecnik
verified
rating uzivatele
5. 12. 2017 11:40:17
Napsal Aleš Jiříček;1428198
...Ale zkus si do toho serveru pridat naky narocnejsi veci a 1000 lidi naraz a bude to v totalni kreci...
A kolik pripojeny websocketu zhruba pri beznem provozu mas? Ja jsem to zatim pustil jen internim lidem a to jsou stovkova cisla useru, nicmene s kazdym otevrenym tabem nabehne dalsi websocket, takze stovky realnych pripojeni a zatim nezaznamenavam potize.
Provoz mam zatim na jednom vlakne, ale interne to jede na Redisu, takze to da i 10tis zprav za sekundu a mam tam interni sockety na workery pro pozadavcich na sluzby, ktere jsou pomale, takze tim eliminuju zatez samotneho ws serveru, ktery jen rozesila messages sluzbam nad Redisem, pripadne workerum v jinych procesech.
5. 12. 2017 11:40:17
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315421
hm
verified
rating uzivatele
(20 hodnocení)
5. 12. 2017 11:54:47
Nevim jestli mas stejnou archtekturu jako ja, rekl bych ze ne, ja to mam spustene na serveru v CLI jako jeden server, normalne pres "php startServer.php" (uplne mimo apache, ten je tam jen na stazeni html+js na frontendu), ale ten server proste provadi vsechny veci v dalsich vlaknech, v podstate mam vlakno na komunikaci a bud v tom samem vlanu ci v dalsich vlaknech podle situace zpracovavam veci ktery si ta komunikace vyzada, v podstate mi v jedinym programu jede jak komunikace tak i vesera aplikacni vrstva, tam si vubec nedokazu predstavit jet na jednom vlakne, protoze jedno vlakno by proste nestihalo ani omylem... Ale ty mas ocividne nejakou odlisnou architekturu :) A abych rekl pravdu tak tenhle multithreading neni proste uplne to na co je php delany, php obecne uz neni uplne technologie zitrka :) technologie zitrka je proste node.js a javascript... Ac si myslim ze to moc lidi nechce slyset :D ale je to tak...
5. 12. 2017 11:54:47
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315420
skorozacatecnik
verified
rating uzivatele
5. 12. 2017 12:44:18
Jako CLI je to nej, ale mam to spustene jako proces apache, potrebuju enviroment, ktery v CLI neni. Na CLI mam supervisord, ale to mam zatim ve vyvoji. Jako proces apache to jede fajn. Threadovani, nebo forkovani jsem zvazoval, ale nakonec jsem to udelal tak, ze se da spustit vic WS serveru, ktere si povidaji po socketech mezi sebou a jeden zpracovava pozavavky z venku. K tomu mam ty workery na procesy sluzeb, ktery jsou extra dlouhy - tem se branim :)
PHP vs JS asi neni potreba moc resit, je to otazka nazoru a zkusenosti. V mem pripade je nesmysl prepisovat xMB PHP kodu do NODE.JS, kdyz na tom PHP jede rozsahly system a obsahuje i model udalosti napojeny na WS server atp. Ale chapu, ze pokud nekdo radeji JS, nebo ma treba neco, co prepise za pul roku do JS, tak je NODE.JS mozne reseni a JS obecne ma budoucnost :)
5. 12. 2017 12:44:18
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315419
hm
verified
rating uzivatele
(20 hodnocení)
5. 12. 2017 13:02:54
jako ja vim, je to jeden z duvodu proc mi nejaky veci jedou na PHP, ale do budoucna uz vyvijim pimarne JavaScript a to programovani a ta tehcnologie je proste o tolik dal, ze naky PHP je pro me ted spis nutny zlo :) to uz ani neni o zkusenosti, ja jsem php delal 12 let a je to pro me primarni technologie po hodne dlouhou dobu, stejne ted postupne prechazim, protoze ten JS sel tak neuveritelne dopredu (musis do toho proniknout pres node.js abys pochopil) a ta vyhoda toho ze mas stejnou technologii na serveru i na frontendu je fakt neskutecna, navic sem v tom zacal delat i mobilni appky a tak nejak si rikam, ze JS je budoucnost prave pro tu eho neskutecnou univerzalnost... Ale jo, taky mi jeste jede spoustyveci na PHP, jen bych novy veci nutne uz v tom nedelal
k tvoji archtekture - budiz, mas to proste nastavene trochu jinak, to co mam udelane ma neklik vyhod, je to ve vysledku i jendodussi architektura, protoze nemusim resit komunikaci mezi thready pres dalsi sockety atd... Jen to zase vyzaduje specialni php co umi multithreading :)
5. 12. 2017 13:02:54
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315418
node
verified
rating uzivatele
(5 hodnocení)
5. 12. 2017 14:14:58
Aleš a pouzivas tam napriklad Amp a Aerys? A mas to za Nginxom alebo na priamo?
5. 12. 2017 14:14:58
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315417
hm
verified
rating uzivatele
(20 hodnocení)
5. 12. 2017 14:22:35
node: nepouzivam amp ani aerys, napsal jsem si do sveho frameworku vrstvu pro websockety podle jejich specifikace normalne pres php sockety a multithreading... Takze sem nepouzival cizi knihovnu (chtel sem se naucit jak to funguje a mel sem na to cas) a mam to vetsinou naprimo.
5. 12. 2017 14:22:35
https://webtrh.cz/diskuse/vyvoj-a-provoz-websocket-serveru-a-rtp-sluzeb-zkusenosti-a-vykon/#reply1315416
Pro odpověď se přihlašte.
Přihlásit