gpt4 book ai didi

node.js - 来自socket.io的ERR_CONNECTION_REFUSED

转载 作者:行者123 更新时间:2023-12-03 11:53:43 25 4
gpt4 key购买 nike

我正在尝试运行Node.js应用程序。使用SSH,我可以运行“node server.js”:

var express = require('express');
var app = express();
var server = app.listen(5431);
app.use(express.static('public'));
console.log("### RUNNING ###");
var socket = require('socket.io');
var io = socket(server);

它确实记录并没有引发任何错误。但是,当我打开客户端浏览器应用程序时,在控制台中得到以下输出:
Failed to load resource: net::ERR_CONNECTION_REFUSED
GET http://localhost:5431/socket.io/?EIO=3&transport=polling&t=MWCsv9T net::ERR_CONNECTION_REFUSED

客户端连接:
var socket = io.connect('http://localhost:5431');

我尝试用IP和域进行连接,但结果相同。应用在本地计算机上运行良好。

我已经使用以下php脚本检查了开放端口:
    for($i=0; $i<10000; $i++) {
portCheck($i);
}

function portCheck($port) {
if(stest('127.0.0.1', $port))
echo $port . "<br>";
}

function stest($ip, $portt) {
$fp = @fsockopen($ip, $portt, $errno, $errstr, 0.1);
if (!$fp) {
return false;
} else {
fclose($fp);
return true;
}
}

而我得到了:

enter image description here

如 list 5431所示,我假设该端口确实是开放的。

我不知道是什么原因导致此错误。

最佳答案

var socket = io.connect('http://localhost:5431');

这意味着客户端将连接到 本地机器-从脚本执行系统的角度来看,此处 本地是。由于脚本是在浏览器中执行的,这意味着您的应用程序应在运行浏览器的客户端计算机上运行。
Failed to load resource: net::ERR_CONNECTION_REFUSED
GET http://localhost:5431/socket.io/?EIO=3&transport=polling&t=MWCsv9T net::ERR_CONNECTION_REFUSED

尽管您没有明确地说出这一点,但稍后的语句(请参见下文)表明,此操作是在与您的应用程序所运行的不同的计算机上完成的。如果您的应用程序在主机A上运行,而浏览器在主机B上运行,则客户端浏览器(执行脚本的位置)内的 localhost指向主机B,而不是主机A。

App worked fine on local machine



这是可以预期的,因为在这种情况下 localhost是您的应用程序实际在其上运行的计算机(应用程序和浏览器在同一台计算机上)。

关于node.js - 来自socket.io的ERR_CONNECTION_REFUSED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54001368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com