在某些业务场景,我们需要页面对于后台的操作进行实时的刷新,这时候就需要使用websocket。
通常在后台单机的情况下没有任何的问题,如果后台经过nginx等进行负载的话,则会导致前台不能准备的接收到后台给与的响应。socket属于长连接,其session只会保存在一台服务器上,其他负载及其不会持有这个session,这时需要给保存某个客户端session信息的用户发送消息就发送不到,并且redis中不能序列化websocketsession对象,所以此时,我们需要使用redis的发布订阅来实现,session的共享。 所有用户向redis订阅,redis通过广播的形式发送每个websocket服务端上的所有session会话通知给相应的客户端。