Docker中的Tomcat与webapp:WebSocket握手期间出错

时间:2018-03-03 14:47:24

标签: javascript java docker websocket java-websocket

我有一个Java webapp和一个浏览器应用程序,通过我的客户端Javascript代码中的WebSockets连接到它:

function connect() {
    var username = 'my-user';

    var url = `ws://${document.location.host}${document.location.pathname}chat/${username}`;
    log(`making WebSocket connection to ${url}`)

    var ws = new WebSocket(url);

    ws.onmessage = (event) => {
        var message = JSON.parse(event.data);
        log(message.message);
    };

    ws.onerror = (event) => {
        log(event);
    }
}

本地运行Tomcat时的端点为ws://localhost:8080/my-app/chat/my-user

在Docker下运行Tomcat时的端点是ws://localhost:8090/my-app/chat/my-user(端口8090)

这在连接到我的本地Tomcat时工作正常,但在连接到Docker Tomcat时则不行。

尝试连接Docker Tomcat时我得到的错误是:

  

WebSocket连接到' ws:// localhost:8090 / my-app / chat / my-user'失败:WebSocket握手期间出错:意外的响应代码:404

有什么想法吗?据我所知,我不需要在Docker中打开任何其他端口(我已正确映射8090)。我不知道是否有任何额外的日志记录我可以在Tomcat中打开以显示端点。也许我只是没有指定正确的端点?

0 个答案:

没有答案