Таким образом, в основном ваша проблема сводится к тому, что состояние сервера изменяется (через WS), и мы хотим, чтобы что-то произошло на стороне клиента, где просматривается ваше веб-приложение.
Честно говоря, это не так просто. Интернет работает на клиенте -> Архитектура сервера. Пользователь отправляет запрос на сервер, сервер отвечает. То, что вы пытаетесь сделать, это наоборот. Вы хотите отправить запрос с сервера пользователю. Протокол HTTP не работает так.
Прямо сейчас, чтобы сделать нечто подобное, используются следующие две стратегии:
Websockets : попробуйте найти их в Google. Вы создаете сокет между клиентом и сервером, и как только сервер обновляется WS, он отправляет запрос клиенту через сокет. Вы можете попросить его перейти к другому представлению или открыть новое окно. Недостатком является то, что он не поддерживается большинством браузеров. Может потребоваться год или около того, чтобы быть. Не очень рекомендую сейчас.
Опрос : Вы можете отправлять запросы Ajax от браузера к серверу через определенные промежутки времени (вы знаете, как каждые 5 секунд) и видеть, изменилось ли состояние сервера или сейчас. Если да, то делай свое дело. Это самая распространенная техника. Twitter.com использует это. Существует также другая версия, называемая Comet или Long Polling, но я не буду вас с этим путать.
Здесь важно отметить, что все, что вы хотите сделать (открыть вкладку, изменить представление и т. Д.), Вы должны сделать это через Javascript на стороне клиента.
надеюсь, что поможет