使用websockets的web应用程序“无法建立连接”接收端不存在”

kuhbmx9i  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(369)

java服务器、javascript客户端、无特殊库、纯文本http/1.1和websocket连接。服务器端使用jdk 16和tomcat 10.0.2版中的websocket jar编写(在eclipse中)(其他JDK和websocket jar的许多排列也被尝试过。)
两个web应用程序。tomcat 10.0.2在pc上,10.0.7在服务器上。这两个应用程序都在windows 10上运行。部署到ubuntu 20.04服务器。两个程序都显示初始http数据。一个程序获得websocket连接并工作,另一个程序无法获得websocket连接。两者都使用相同的代码来计算websocket连接的目标url:

window.onload = function() {
    var target = "ws://" + location.host + "/[context]/[endpoint]";
    console.log("target: " + target);
    try {
        if ('WebSocket' in window) {
            socket = new WebSocket(target);
        } else if ('MozWebSocket' in window) {
            socket = new MozWebSocket(target);
        } else {
            alert('WebSocket is not supported by this browser.');
            return;
        }
    } catch (e) {
        console.log("websocket connection exception: " + e.description);
    }
...

其中只有[context]和[endpoint]不同。回想一下,这些URL在pc上工作。我相信它们是“格式良好的”/有效的。
失败的web应用程序的结果:
火狐:
未捕获异常:无法建立连接。接收端不存在。
获取ws://35..xx.xx:8080/memory/memoryendpoint[http/1.1 404 70ms]
firefox无法在ws://35..xx.xx:8080/memory/memoryendpoint建立与服务器的连接。
铬:
错误处理响应:typeerror:无法读取未定义的属性“encrypt”
在对象1.13(铬)-extension://bkdgflcldnnnapblkhphbgpggdiikppg/public/js/content-scripts/autofill.js:1427:33)
. . .
game.js:31到“ws://.xx.xx.xx:8080/memory/memoryendpoint”的websocket连接失败:
关于“加密”未定义的问题,chrome持续了许多行。我不知道这是怎么回事,但这可能非常相关。上面的最后一行意味着下一行可能会给出失败的原因,但它是空的。
两个浏览器都不会记录以“websocket连接异常:”开头的预期异常文本。
tomcat日志文件都是干净的,除了localhost\u访问\u日志中的一些奇怪条目,例如: 209.90.225.218 - - [11/Jul/2021:00:43:33 +0000] "HEAD /robots.txt HTTP/1.0" 404 - 还有其他人提到 /invoker/readonly, /login, /jenkins/login, /nifi/ . 两个程序都从tomcat服务器返回结果,这一事实告诉我,端口等的权限都足够了。我还深入研究了netstat结果等,查看了防火墙设置,阅读了许多文章并请求帮助(可能与此无关,因为tomcat确实返回了预期的http/1.1数据。)运气不好。
我需要这个程序来工作。我会在2021年7月16日之前支付现金奖励,以解决这一问题,但我不知道如何谨慎地进行协商-(

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题