Reach for SSE when the data flows mostly in one direction: server to client. Live sports scores, stock tickers, a notification feed, a build or deploy log that streams as it runs, or token-by-token output from an AI model are all natural fits. You get streaming with almost no infrastructure beyond a normal HTTP endpoint.
Use WebSockets instead when you need true two-way, low-latency traffic, like a multiplayer game, a collaborative editor where both sides type, or a chat app with typing indicators. WebSockets are full duplex and can carry binary frames; SSE is text only and one direction.
The trade-off to weigh is simplicity versus capability. SSE works through proxies and firewalls that already understand HTTP, supports automatic reconnect with resume, and needs no special server. The costs are: text only, no client-to-server channel, the per-domain connection limit on HTTP/1.1, and no native support in Internet Explorer (a polyfill covers that if you still care).