繁体   English   中英

WebSocket 连接失败:连接建立时出错:.net::ERR_CONNECTION_REFUSED

[英]WebSocket connection failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

我是 WebRTC 和 WebSockets 的新手,正在按照本教程创建 WebRTC 演示项目,但我无法创建 WebSocket 连接。 我遵循了项目中提到的相同步骤。 他的项目在端口 8080 上运行,他提到了 ws://localhost:9090。 我的项目运行在 8081 端口,但我复制了他的 URL ws://localhost:9090 因为我不知道 9090 的意义,我收到了这个错误,我的服务器是 node.js。我也将本地主机更改为 8081 但是然后我收到握手错误。

WebSocket 与“ws://localhost:9090/”的连接失败:连接建立时出错:.net::ERR_CONNECTION_REFUSED。

Chrome 不允许不安全的 websocket (ws) 连接到本地主机(只有 wss,所以你应该为你的本地 web/websocket 服务器设置一个 TLS 证书)。 但是,Firefox 应该也能正常工作。

您需要使用ws://yourIp:9090/ ,其中 yourIP 类似于192.168.?.? .

尝试将端口更改为 8080

const ws = new WebSocket('ws://localhost:8080/chat')

端口 9090 由 reactotron 使用。 可能你在你的项目中使用它并且你的应用程序无法连接 reactotron 因为它是关闭的。 只需打开reactotron,错误就会消失。

通常 WebRTC 需要安全连接(即 https)。 您遇到的错误是由于 TLS/SSL 证书被占用,可能是您的项目中未正确配置它们。 提供有效的 TLS/SSL 证书并在项目中正确配置它,然后它将正常工作而不会出现上述错误。

你能确定服务器是否正在运行吗? 如果有 python 服务器文件,您可以尝试通过 python3 server.py运行该服务器。

就我而言,我忘记运行服务器,它给了我同样的错误。

我想这是一个通用的 websocket 问题。

使用内置的location.host变量将 url 更改为动态名称,如果您已设置 TLS,则更改协议以保护 websocket wss

const ws = new WebSocket("wss://" + location.host + "/")

您也可以轻松更改 IP 地址到主机名的映射,在 Windows 上转到 C:\\Windows\\System32\\drivers\\etc\\hosts 并取消注释此行 127.0.0.1 localhost save 并重新启动。

WebSocket 连接到 'ws://localhost:8080/' 失败 必须确保服务器文件正在运行 I git 上述问题

也许你忘了启动websocket服务器,再检查一遍,在我的项目中配置,运行:

php artisan websocket:init

错误信息;

“与 'ws://localhost:9090/' 的 WebSocket 连接失败:连接建立时出错:.net::ERR_CONNECTION_REFUSED”

表示您的客户端正在尝试连接到位于ws://localhost:9090的 WebSocket 服务器,但连接被拒绝。 这可能是因为:

  1. WebSocket 服务器未在指定portIP address上运行。
  2. WebSocket 服务器正在运行,但不接受来自客户端的连接。
  3. firewall阻止连接。

要解决此问题,请确保 WebSocket 服务器在正确的 IP 地址和端口上运行,并且它正在接受来自客户端的连接。 如果您使用防火墙,请确保防火墙未阻止连接 此外,您可能需要更新客户端代码中 WebSocket 服务器的 URL,以匹配您尝试连接的服务器的正确 IP 地址和端口号。

例子:

这是一个 Node.js 客户端尝试连接到 WebSocket 服务器的示例:

const WebSocket = require('ws');

const ws = new WebSocket('ws://localhost:9090');

ws.on('open', function open() {
  console.log('WebSocket connection established');
});

ws.on('error', function error(err) {
  console.error('WebSocket connection failed:', err);
});


在此示例中,客户端创建一个 WebSocket 连接到位于ws://localhost:9090的服务器。

  • 如果成功建立连接,控制台将记录一条消息“ WebSocket connection established ”。
  • 如果连接失败,错误信息“ WebSocket connection failed: [error message] ”将被记录到控制台,错误信息指出连接失败的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM