Server sent events
Dobrý den,
zkouším na hostingu jednoduchý princip chatu pomocí Server Sent Events (SSE). Při testování na localhostu SSE funguje, ale po nahrání sem na hosting nikoliv.
Javascriptem vytvořím objekt EventSource a ten směřuje na PHP skript, který vrátí hlavičku:
header(‚Content-Type: text/event-stream;charset=UTF-8‘);
a pak skript obsahuje smyčku běžící např. 20 sekund (pak se ukončí a prohlížeč ho spustí znovu) a testující (např. každých 200 ms), zda jsou k dispozici nové zprávy (uložené v databázi v MEMORY úložišti). Pokud ano, pošle je do streamu (na výstup). Jenže ze streamu se již do prohlížeče nedostanou.
Je možné, že je u vás nějaká proxy, která výstup cachuje a zamezí tak průběžné zasílání zpráv v SSE streamu? Načtou se pouze při otevření spojení a pak už ze streamu nic nového nepřiteče (na localhostu však ano)
Chápu, že to není ideální přístup vzhledem k opakovanému dlouho běžícímu skriptu (20 sekund), ale na hostingu, kde nemám jak spustit websockets server, asi jinou možnost nemám.
Jedná se o stejný princip jako v tomto examplu https://github.com/lcherone/sse-chat-example
Díky
3 Answers
Dobrý večer.
Zkusil jsem, ale stejný problém. Zkusil jsem pak ještě jiný hosting a tam se to zase chová úplně jinak. Nevadí, nakonec použiju pro realtime buď službu Pusher nebo Ably.io, alespoň nebudu hosting trápit dlouho běžícími PHP skripty 🙂
Díky
Zdravím, co zkusit vypnout cachování – https://help.wedos.cz/otazka/prosim-o-vypnuti-http-proxy-cache/39355/
Dobrý den,
podařilo se problém vyřešit? Zkusil jste případně aktivovat logy? Ty by nám mohli sdělit kde dochází k problému.