gpt4 book ai didi

node.js - React js Socket io 无法在局域网 wifi 中工作

转载 作者:太空宇宙 更新时间:2023-11-03 23:04:43 24 4
gpt4 key购买 nike

所以我已经完成了一个正在我的机器上运行的nodejs + socket.io + Reactjs 项目。我可以在我的机器中打开不同的选项卡或浏览器并测试它及其工作情况。但是我想在局域网内的其他机器上测试它。当我通过其他机器上的wifi将其连接到我的网络IP地址时,我可以看到该页面。但是,socket.io 无法正常工作。当我在 chrome(其他机器)中打开控制台时,这是我看到的错误:

GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=LMXV0Uf net::ERR_CONNECTION_REFUSED

这是我的 Node app-server.js:

app.use(express.static('./public'));
app.use(express.static('./node_modules/bootstrap/dist'));
var server = app.listen(3000);
var io = require('socket.io').listen(server);

如何解决这个问题?另外,在生产环境中部署的推荐方法是什么,以便 socket.io 能够正常工作。

最佳答案

套接字应用程序有两个部分:位于某个地方的单个服务器上的内容,以及分发到其他计算机的客户端代码,这些计算机需要连接回服务器以建立套接字连接。

您的服务器代码可能不需要更改。如果您能够通过某个 IP 地址访问它,则意味着它服务正常。

假设您可以通过 http://1.2.3.4:3000 访问该网站

在客户端代码中的某个位置,您将看到类似以下内容的内容:

import io from 'socket.io-client'
let serverUrl = 'localhost:3000'
let socket = io(serverUrl)

您需要将 serverUrl 更改为服务器的 IP 地址,因此 http://1.2.3.4:3000

这是因为 localhost 从另一台计算机加载时指向那台计算机。但是您需要将套接字连接回原始服务器。

关于node.js - React js Socket io 无法在局域网 wifi 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38124656/

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