Как использовать хэш-карту, созданную в одной ServerEndpoint в другой ServerEndpoint - PullRequest
0 голосов
/ 31 декабря 2018

Я хочу использовать хэш-карту, созданную в одном классе (websocket ServerEndpoint) в другом классе (также ServerEndpoint).Хэш-карта в первом классе является статической.Чтобы иметь доступ к нему во втором классе, я создал геттер в первом классе (который также является статическим).Во втором классе я сделал переменную экземпляра, которая вызывает метод получения первого класса.Проблема, которую я пересекаю, состоит в том, что значения хэш-карты доступны только после повторного развертывания приложения.

// первый класс

@ServerEndpoint(value = "/game/{gameId}")
public class GameEndpoint extends WebsocketEndpoint {
private static HashMap<String, User> users = new HashMap<>();

users.put(session.getId(), user);

public static HashMap<String, User> getUsersMap() {
    return users;
}
}

// второй класс

@ServerEndpoint(value = "/invite/{userToken}")
public class InviteWebsocketEndpoint extends WebsocketEndpoint{
@OnMessage
public void onMessage(Session session, String json) throws 
IOException, EncodeException {
    GameEndpoint ge = new GameEndpoint();
    HashMap<String, User> users = new HashMap<>(ge.getUsersMap());
}
}
...