Websockety přicházejí do Nette
- akadlec
- Člen | 1326
Pokud někdo z vás již narazil na potřebu používat websockety v nette, zjistil určitě že je to docela oser :D. Protože jsem se k tomuto problému taky dostal, rozhodl jsem se své řešení vystavit i pro ostatní.
Celé řešení původně vycházelo z docela oblibeného balíčku ratchetphp nicméně po hlubším prozkoumání jak tento balík funguje, se mě přestal líbit. Jeden z důvodů byl taky ten že je až moc symfoní a v aktuální verzi využívá hodně staré knihovny.
Vydal jsem se tedy vlastní cestou a vytvořil soubor balíků pro snadnou integraci websocketů pro Nette projekty.
je základní jádro celého serveru. Definuje základní parametry serveru a integruje jeho konzolové rozhraní
je integrace WAMPového protokolu pro websockety. Doplní základní jádro o aplikaci vytvářející WAMP server. Přináší taky základní integraci JS klienta Autobahn
a pomocí tohoto balíčků se dá integrovat session, takže pak v jednotlivých akcích je k dispozici session uživatele a dokonce i user context
Pokud potřebujete klientům posílat data i z míst mimo websocketový server, tak k tomu slouží ZeroMQ. Jednoduše si stačí dopravi Pushera třeba do vašeho presenteru a poslat data do vybraného topicu. Consumer se pak sám postará o to aby byla data doručena.
Celé řešení je zatím v testovacím provozu, takže pokud někdo narazí na chybu, tak klidně reportovat, případně udělat PR apod.
- akadlec
- Člen | 1326
@srigi no teoreticky by to neměl být problém. Když se podíváš na implementaci ZeroMQ tak pokud tohle dokážeš udělat přes rabbita. Princip je v tom že musíš udělat „Pusher“ a „Consumer“. To je vše.
Jinak ZeroMQ bych neviděl jako nepopulární, je založen na reactphp a jeho integrace je hodně jednoduchá.