WebSocket失败尝试连接到公共IP时

时间:2016-07-08 15:48:20

标签: javascript java websocket java-websocket

我正在使用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。任何人都可以帮助解决这里的错误吗?

0 个答案:

没有答案