Я новичок в принципе веб-сокета Java EE 7.
У меня есть сервер Java EE 7, развернутый на Wildfly 10.
Я настроил контекстный путь и путь к приложению. Я могу связаться с сервером через http://localhost:8080/context_path/app_path/something
.
Теперь я объявил простую ServerEndpoint:
@Stateful
@ServerEndpoint("websockets/stream")
public class StreamServerEndpoint {
private static final Logger LOG = Logger.getLogger(StreamServerEndpoint.class);
@Inject
ByteBufferStore byteBufferStore;
@Inject
private EventListener listener;
@OnOpen
public void open(Session session) {
LOG.info("Session opened and registered");
listener.register(session);
}
@OnMessage
public void message(Session session, ByteBuffer buffer) {
LOG.info("Message retrieved");
session.getUserProperties().put("buffer", buffer);
//byteBufferStore.retrieve().ifPresent(byteBuffer -> Common.sendBuffer(session, buffer));
}
@OnClose
public void close(Session session) {
listener.unregister(session);
}
}
С другой стороны, у меня есть внешний проект Angular 2, который должен подключаться к веб-сокету, но я получаю коды ошибок: 404, 200, в зависимости от ссылки.
Я получаю 200 с этим:
ws://localhost:8080
Я получаю 404 (рукопожатие невозможно) с этим:
ws://localhost:8080/context_path/app_path/websockets/stream
Что я могу сделать, чтобы добраться до веб-сокета? Очевидно, мой URL-адрес неверен, или способ, которым я запрограммировал конечную точку сервера, совершенно неверен.