Laravel Echo

Laravel Echo je nástroj, díky čemu jež je jednodušší implementovat WebSockety do naší Laravel aplikace. Ulehčuje také některé běžné (a více komplexní) aspekty při vytváření složitějších WebSocket propojení. Echo přišlo do Laravel ekosystému s dvěma novinkami - se sérií vylepšení v Laravel Event broadcasting systému a také s novým javascript balíčkem.

Backend komponent Echa byl vytvořen na míru Laravelu, konkrétně již na verzi 5.3, a tudíž není potřeba jej nijak importovat. Tento backend lze využívat s jakýmkoliv javascript frontendem a všude najdete výrazné usnadnění při práci s WebSockety. Nicméně nejlépe pracuje společně s Echo javascript knihovnou, kterou lze importovat přes NPM a nejčastěji funguje jako "sugar" vrstva nad Pusher JS nebo Socket.io.

Kdy použít Laravel Echo?

WebSockety jsou užitečné v situaci, kdy potřebujete poslat zprávu vašim uživatelům (ať už se jedná o upozornění nebo aktualizaci uživatelských dat), zatímco jsou uživatelé stále na té samé stránce (zpráva se tak nezobrazí až po přenačtení stránky). Tento problém lze samozřejmě vyřešit long-pollingem či jiným javascriptovým pingem, nicméně je zde velké riziko přehlcení serveru požadavky. WebSockety jsou velmi efektivní, nepřetěžují server a lze je škálovat, a jsou téměř okamžité.

Pokud tedy chcete využívat WebSockety s Laravel aplikací, pak Echo nabízí pěknou a čistou syntaxi pro vytvářeních jednoduchých věcí jako jsou public channels (každý může přispívat) nebo složitějších služeb jako jsou autentizace, autorizace, private channels (frontend musí ověřit uživatele na backendu a poté zajistit, aby daný uživatel měl přístup k danému kanálu) či present channels (neumožňuje odesílat zprávy a namísto toho pouze oznamuje, jestli je daný uživatel v kanálu přítomný nebo ne).

Příklady použití

Jak jsem již psal, Echo využívá koncept WebSocketů a díky tomu má řadu využití:

  • Admin dashboard a grafy a jejich realtime zobrazení enter image description here
  • Oznámení a alerty bez nutnosti obnovovat stránku či přesměrovávat někam jinam enter image description here
  • Sociální zprávy či novinky pro zaměstnance či uživatele enter image description here
  • Chat mezi zaměstnanci či zákazníky enter image description here

Závěr

Laravel Echo nabízí mnoho výhod a práce s WebSockety je pak mnohem jednodušší. Určitě doporučuji si projít oficiální dokumentaci nebo shlédnout sérii Get Real With Laravel Echo na Laracastu (některé videa jsou placená).