In order to use ServiceStack in their environment they want to use an High Availability system, with 2 virtual machines behind a Load Balancer. Each virtual machine will start its own apphost and the load balancer will use an Active / Passive selection to redirect each call to a specific virtual machine. The load balancer can manage SSE redirection if it is compatible with RFC6544 standard, otherwise we need to find a different approch.
No Server Sent Events is specifically designed to work over HTTP, not Web Sockets. It’s an alternative to Web Sockets that works over standard HTTP, it doesn’t work over Web Sockets.
To make it easier it is a point to point http connection between server and client, right? This mean that it can not work behind a load balancer, where the client don’t really know the server address but know only the load balancer.
May it work using RedisServerEvent instead of ServerEvents?
SSE works over HTTP so can be routed through HTTP middleware proxies and load balancers since it’s just… HTTP. If you run it over SSL (i.e. https) the connection will be opaque to the middleware as a binary stream which can prevent some middleware from performing any deep packet inspection and potential buffering.
Redis Server Events has no effect on the external SSE HTTP connections, it’s only replacing the backend implementation to propagate events to multiple App Servers.
Yes, it publishes all notifications/messages via Redis Pub/Sub where it’s received by all App Servers, with the App Server that holds the SSE connection who will ultimately send the message back to the client.