Websocket, PHP a real-time komunikace

Po delší době jsem se rozhodl publikovat krátký článek, který se bude možná hodit těm, kdo vyvíjíte weby v PHP a chtěli byste na nich využít obousměrnou komunikaci přes websocket, což na běžných hostingových programech pro PHP projekty není úplně jednoduché.

Pokud programujete dlouhé roky v PHP, asi se vám nechce přecházet na jiné populární jazyky jen pro to, abyste nasadili do projektu novou funkcionalitu, jakou je real-time komunikace přes websocket. A ani to není potřeba, protože jsou řešení, která dokáží nedostatky PHP vyřešit.

Websocket jako služba (IaaS)

Řešením, jak nasadit websocket komunikaci na web v PHP, aniž byste se učili nové programovací jazyky nebo si instalovali vlastní virtuální server s podporou websocketů, je využití infrastruktury jako služby (insfrastructure as a service).

IaaS vám poskytne vše potřebné pro navázání a udržování otevřených websocket spojení s klienty, kteří mají aktuálně zobrazený váš web, nebo spuštěnou aplikaci. Můžete s nimi tedy komunikovat v reálném čase a odesílat klientům data do jejich zařízení, aniž by si o ně požádali, na rozdíl od klasického HTTP nebo AJAX požadavku.

Dost řečí, více činů, jdeme na to

Nemá smysl popisovat věci, které už někdo popsal. Pokud chcete víc informací, je dobré se podívat přímo na služby, a to hned od několika poskytovatelů. Hlavní parametry pro porovnání služeb jsou počet konkurenčních spojení (aktuálně připojených klientů) a počet i velikost zpráv odesílaných před websocket.

Služby pro real-time komunikaci přes websocket

  • WebSocket.cz - český projekt mého kamaráda, doporučuju zkusit
  • Mercure.rocks - Mercure real-time API and websocket communication
  • - Powering realtime experiences for mobile and web
  • - AWS WebSocket APIs in API Gateway
  • - Pie Socket WebSocket Servers

Poskytovatelů websocket IaaS je samozřejmě víc, včetně cloudů jako Google, Azure a další. Stačí pohledat na google výrazy jako "websocket IaaS", "rest API to websocket" a pod. Snad vám podobné služby usnadní integraci websocketů do projektů v PHP, které se vám nechce přepisovat, protože jinak fungují pěkně.

Wed, 20. April 2022 - před 100 týdnyAnonymní­ uživatel

O trávě o slunci

Bylo, nebylo. Ono to spíš nebylo, leč slunce tam svítilo.


Mezi mihavými stíny posledních dosahujících listů z protilehlého stromoví, na krásně punkové lavičce, sedělo při stole, který měl tu čest, že se již neopíral o futra, ale byl opěrkou pro loktě svírající zrzavé české chleby, stáčené v přistavené osvěžovně punkových rozměrů. Na nohou z cykloceli, dvě lavice mu pomáhali.


Na straně jedné, hospodská stěna se střechou příkrou, pravděpodobně věžatou. Bez obsluhy, přesně jak živá punkovost káže. Konec bloku, po pravici ukazujíc krásy pavlače, čtyři patra prosuleněných výběhů pro šťasné pavlačisty.


Na straně druhé trasa jasná, vyrovnaná, betonovaná a plná nadšenců produkujících nejvyšší rychlost, kterou mohou nebo chtějí dosáhnout. Dle opakujících se radostných tváří se dalo usoudit, že stejně jako nedojdeš na konec placky zvané země a nespadneš, stejnou oválovitostí oplíval tento kruh. Za touto, při teplém slunečním teplém objetí, velmi oblíbenou trasou se nejasně rýsovala velmi strmá, kři řezaná stezka. Ta prý vede až k sedlanému majestátu tyčímu se nad všemi krásnými, vežičkami osetými obytnými skvosty.


Zde, sedělo, vyjma stínů mlčelo.


/// A já se mám už tři roky skvěle, ano, to vám řeknu, směle!

Wed, 30. July 2014 - před 501 týdnyArteal

Ateista a Ajťák

Poslední týden byl velmi zajímavý.
Setkal jsem se totiž se starým známým. Bydlel kousek ode mě a docela často jsme se potkávali, ikdyž jsem to ze začátku ještě nevěděl. Jeho galerie "pod mostem" byla dlouho a chtěl bych, i nepřál bych, aby dlouho ještě byla, místem mnoha otazníků a vykřičníků.
Člověk by se na to chtěl dívat s nějakým nadhledem, ale když si uvědomím, že jsem to nejspíš zapřel, tak přichází ta surovost, se kterou jsem toto chtěl napsat. A přitom nezlobit.

Setkání anonymní a přitom tak osobní.

Příběh stejný, cesta jiná.

Každý chce být jako já, přitom by nikdo nechtěl.


Cesta zapření mě dovedla až k tomu, že s chutí píšu něco, co nikomu nedává smysl, ale přitom to dáváš, protože chceš aby dávalo a k tomu máš máš strach, že ti to někdo zhejtuje, někdo, kdo tomu rozumí a ty mu musíš říct : "jo, je to napiču, to je mi jasný".

Ale "překvap játra vodou".

Pokud by jste tedy chtěli nějaké poslání, nebo tak, tak jsem se rozhodl že nebudu zlobit, sebe, ne ostatní.
Uvědomit si, že tohle někoho zajímá bylo jako blesk z nebes. To, že se nezavděčíš všem je hromosvod. To dobrý na tom je, že to zase časem zapadne mezi další články, to blbý je, že je to tu asi technickej tip.

Jo a ještě něco :)

Wed, 5. March 2014 - před 522 týdnyArteal

Creepy One

I wish I was special

Tak moc emyšlenek mě dovedlo až sem. Ano nebo ne, proč ano, pokud ne.

Tak krásně jsem se měl, když jsem si neuvědomoval, jak to nejde do kopce. Chtěl jsem vyjímečný rok, mám ho, se vším všudy. Dnes v noci tá otázka dává větší význam něž kdy předtím, ale už jsem blízko odpovědi, bez které nelze jít dál. Ať tak, či tak, těším se, až budu znovu šťastný a začnu zase pilovat a posouvat na co se podívám, vlastní pilou, vlastní silou.

Rok 2014 se mi zapíše do hlavy jako rok, kdy jsem se neposral, kdy jsem se o to postaral.

Trvalo mi to krásný a dobrý rok, kdy jsem se nedotkl Piggyho, ale ukázal mi, že stagnace, je dobrá a dobré je kurevsky málo pro život.

Je to jiný, je to jiný, protože mě to umí užírat moderním způsobem, který mě živí (oh, so social) a je to jiný, protože cítím lásku, tam kde jsem dřív mohl jen snít. Vím co musím a vím, co umím. Vím, že tu není žádné místo pro nevím.

Potřebuju jen sesbírat sílu jít a říct. Maybe pathetic, but totally true.

Jsi nejlepší bytost, co jsem potkal a chci abys to věděla a potřetí si to už nenechám pro sebe, zvlášť když mám toho tolik pro tebe.

Můžu vše, jen ne, trápit se a užírat tím všechny ty úžasný lidi, který mi poslední roky dávají sílu smát se a vstávat

Thank you for lovin' you, birdie

I'm not hurt, because it was best I can.

Mon, 24. February 2014 - před 523 týdnyArteal