【问题标题】:WebSocket connection to <url> failed: Error during WebSocket handshake: Unexpected response code: 404WebSocket 连接到 <url> 失败:WebSocket 握手期间出错:意外响应代码:404
【发布时间】:2016-07-11 08:25:49
【问题描述】:

我是 WebSocket 和 Node.js 的新手。我正在尝试创建一个实时聊天作为基本程序。我基本上基于我的代码here。我在 Amazon Linux 中运行我的代码,让它作为真正的 Web 服务器运行。输入用户名后总是报错。

我使用 node-static 作为我的 index.html 文件的静态服务器 API。

这是我的 javascript 代码:app.js 这是我的 index.html 代码,位于“public”文件夹中:index.html 我总是在 index.html 的第 15 行得到错误。

谁能告诉我那里有什么问题?我尝试将该部分移动到 connectToChat() 函数内的任何位置,但错误仍然存​​在。

【问题讨论】:

  • 你能分享一下错误吗?您将在浏览器的控制台中找到它。
  • 与 'ws://:8000/index.html' 的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:404
  • 你有一个错误的 url 改变你的 websocket 在ws://&lt;mywebserver&gt;:8000 没有 index.html 最后。

标签: javascript node.js websocket node-static


【解决方案1】:

您调用的 url 有错误。 必须是ws://&lt;mywebserver&gt;:8000 而不是ws://&lt;mywebserver&gt;:8000/index.html

要修复它,请在 index.html 中更改此行

var url = document.URL.replace("http://", "ws://");

var url = document.origin.replace("http://", "ws://");

【讨论】:

  • 我尝试了你的建议。错误仍然相同,但现在没有“/index.html”。
  • 好的。你能检查一下 8000 端口是否对收入连接开放?
【解决方案2】:

我有同样的问题。我能够通过将客户端脚本指向真实 IP 来修复它。这不是最好的解决方案,但暂时可以。

let socket = io('http://000.000.000.000:0000');

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2016-05-27
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 2015-12-26
    相关资源
    最近更新 更多