我正在使用javax.websocket和一个JavaScript客户端做一个websocket;当我使用私有IP在JavaScript中调用websocket时,它会起作用,如下所示:
var websocket = new WebSocket("ws://10.3.3.25:8083/MyJavaWebSocket/MyEndPoint");
但是当我尝试更改公共IP的IP时,它不起作用:
var websocket = new WebSocket("ws://190.168.10.10:8083/MyJavaWebSocket/MyEndPoint");
或
var websocket = new WebSocket("ws://mydomain.com:8083/MyJavaWebSocket/MyEndPoint");
它抛出"失败:WebSocket握手期间出错:意外的响应代码:404"。
这是我的Java服务器代码:
@ServerEndpoint(value = "/MyEndPoint", configurator = ChatServerEndPointConfigurator.class)
public class MyEndPoint {
static Set<Session> sesionesUsuarios = Collections.synchronizedSet(new HashSet<Session>());
@OnOpen
public void onOpen(Session session) {
sesionesUsuarios.add(session);
System.out.println(session.getId() + " has opened a connection");
try {
session.getBasicRemote().sendText("Connection Established");
} catch (IOException ex) {
ex.printStackTrace();
}
}
@OnMessage
public void onMessage(String message, Session session) {
session.getBasicRemote().sendText("SEND MESSAGE");
}
@OnClose
public void onClose(Session session) {
sesionesUsuarios.remove(session);
System.out.println("Session " + session.getId() + " has ended");
}
@OnError
public void onError(Throwable e) {
e.printStackTrace();
}
}
我正在使用apache-tomcat-8.0.33。任何人都可以帮助解决这里的错误吗?