Я довольно новичок в веб-сокетах, но мне удалось написать сервер и клиент, которые могут общаться и закрывать соединение.Моя проблема в том, что я пишу приложение JSF, и когда браузер закрывается на клиентском сайте, соединение, кажется, сохраняется, есть ли возможность автоматически закрыть соединение, если браузер закрыт?Кроме того, я вижу проблему при сбое браузера.Вот мой код для клиентской части:
@SessionScoped
@ClientEndpoint
public class PushClient implements Serializable {
private static final long serialVersionUID = 7509153453330998358L;
@Inject
private Logger log;
public void connect(URI uri) throws IOException, DeploymentException {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.connectToServer(this, uri);
}
@OnMessage
public void message(String message) {
log.info("Accident: Message: " + message);
}
}
Я попытался изменить свой код на javascript, это сработало, но затем соединение закрывается и открывается при каждой перезагрузке / навигации страницы.Я думаю, что это приведет к большому количеству сетевого трафика, когда рукопожатие должно выполняться каждый раз, когда страница закрывается ... Кроме того, кажется, что соединение клиент / сервер также является постоянным, если я удаляю свое приложение (я используюСервер Wildfly).Таким образом, кажется, что соединение не учитывает «SessionScoped», это правда?
Заранее спасибо за помощь.