Автоматически закрывать соединение через веб-сокет, если браузер закрыт - PullRequest
0 голосов
/ 07 февраля 2019

Я довольно новичок в веб-сокетах, но мне удалось написать сервер и клиент, которые могут общаться и закрывать соединение.Моя проблема в том, что я пишу приложение 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», это правда?

Заранее спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...