簡體   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