【发布时间】:2017-08-17 08:48:31
【问题描述】:
我是 Java EE 7 websocket 原理的新手。
我在 Wildfly 10 上部署了 Java EE 7 服务器。
我已经配置了上下文路径和应用程序路径。我可以通过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);
}
}
另一方面,我有一个应该连接到 websocket 的外部 Angular 2 项目,但我收到错误状态代码:404、200,具体取决于链接。
我用这个得到 200:
ws://localhost:8080
我得到 404(不可能握手):
ws://localhost:8080/context_path/app_path/websockets/stream
我可以做些什么来访问 websocket?显然我的 URL 不正确,或者我对服务器端点的编程方式完全错误。
【问题讨论】:
-
好吧,没有找到 404,不是不可能握手。你能用不同的 websocket 客户端连接到服务器吗?
-
很遗憾,来自不同 websocket 客户端的请求没有到达服务器。
标签: jakarta-ee http-status-code-404 java-websocket