描述问题
我创建了一个使用websocket连接到Node后端的React应用。在开发模式下,一切正常。前端和后端之间的连接是通过websocket建立的。最有趣的事情是,在执行yarn build创建应用程序的生产版本后,所有页面都能正常工作。唯一的问题是,集成了与后端连接的页面在浏览器中检查时返回错误。我在本地主机上使用Apache服务器运行构建版本的应用程序。
我使用Apache服务器运行应用程序的原因是Python服务器在页面刷新时会抛出错误。从包含的截图中,您可以看到Node服务器命令返回来自后端应用程序的预期响应。应用程序的结构也显示出来,揭示了前端(smartschool和smartresult)与后端(smartapi)之间的关系。只有smartresult向后端发出请求。
实际上,开发模式下的websocket url(完美连接):
ws://localhost:8881
而在生产构建中报告错误的控制台url:
ws://lo77.js.1calhost:8881/socket.io/?EI0=4&transport=websocket
如何解决这个连接问题?任何帮助都将不胜感激。谢谢。
您是否尝试恢复依赖项?
这不是依赖项问题,而是生产中的混淆问题。只有在生产构建中,websocket链接才会断开。
您在用户指南中搜索了哪些术语?
我搜索了:
"websocket链接在生产构建中断裂";
"reactJs无法在生产构建中连接到nodeJs";
"webscoket在生产构建中无法工作"
环境
不适用
重现步骤
(请在这里写下您的步骤:)
- 创建一个使用websocket连接到Node后端的ReactJs项目
- 通过运行以下命令创建生产构建:
yarn build
- 在本地服务器(如Apache)上提供构建版本,并测试websocket连接是否正常工作
预期行为
ReactJs前端应成功连接到NodeJs后端。
4条答案
按热度按时间368yc8dk1#
你好,先生。
我想问一下,你是否已经解决了这个问题?
oknwwptz2#
因为我也遇到了这个问题,WebSocket在ReactJS的生产构建中无法工作。
bsxbgnwa3#
如果你已经解决了,请也帮我解决。
6ie5vjzr4#
我确实切换到了Laravel,通过GraphQL API连接React前端。