Я создал довольно простой Java-сокет и пытаюсь проверить его в нашей тестовой среде. На моем локальном компьютере веб-сокет открывается без проблем, остается с кодом готовности «1», и все, кажется, работает хорошо.
Однако на моем тестовом компьютере, несмотря на то, что сокет, кажется, открывается, я все еще проверяю состояние готовности и выдает код «1», обновление с Https до websocket происходит на вкладке сети, функция OnOpen в моем коде Java похоже, не срабатывает (я пытаюсь зарегистрировать идентификатор пользователя, который идет с новым соединением при открытом сокете и который не отображается ни в журналах моей тестовой среды. На моей локальной машине это тоже работает)
private static final ArrayList<Session> connectedSessions = new ArrayList<>();
@OnClose
public void closeSession(Session session) {
try {
connectedSessions.remove(session);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
}
@OnMessage
public void onMessage(String message, final Session session) {
broadcastMessage(message, session);
}
@OnOpen
public void openSession(@PathParam("userId") String userId, Session session) {
try {
session.getUserProperties().put("USER_ID", userId);
connectedSessions.add(session);
LOGGER.info("-------- Connection id ---------" + userId);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
}
Во внешнем интерфейсе я использую угловой, но никакой другой фреймворк для веб-сокетов, просто обычный javascript, а для моего бэкэнда я использую Xframe 2.2 с сервером приложений Websphere 9.0. Я уверен, что вызываю нужную конечную точку, поскольку она работает на моем локальном компьютере, и я несколько раз тестировал ее с несколькими сеансами.
РЕДАКТИРОВАТЬ: добавление углового кода ниже
this.ws= new WebSocket("wss://" + env.websocketUrl + "socket" + this.context.settings.userId);
this.ws.onmessage = (event) => {
this.update(event.data, this.context.settings.userId);
};
doSomething(data) {
this.ws.send(data);
}
Следует отметить, что сообщение отправляется. Я проверил кадры WS, но я не получил ответа. Это остается "в ожидании"