【问题标题】:Nginx: Connection client-server using Socket.io doesn't workNginx:使用 Socket.io 的连接客户端-服务器不起作用
【发布时间】:2021-12-12 01:51:18
【问题描述】:

大家!

我正在尝试部署我的应用程序,它使用 ReactNodeJs。问题是,我正在使用 Socket.io 进行一些数据处理,它工作正常,但我不明白如何使它与 Nginx 一起工作。

我正在编辑 Nhinx 文件:

sudo nano /etc/nginx/sites-available/react

这是代码:

server {
   server_name {my ip};
   root /root/my-app/build;
   index index.html index.htm;

   location / {
      try_files $uri /index.html =404;
   }

   location /socketio {
      proxy_pass http://localhost:9000;      
      include proxy_params;
      proxy_redirect off;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;      
      proxy_set_header Connection "Upgrade"; 
   }
}

客户端中的代码:

import { io } from "socket.io-client";

let socket = io('http://159.223.113.224',{
    path: '/socketio',
});

export default socket;

服务器中的代码:

"use strict";
exports.__esModule = true;
var express = require("express");
var http = require('http');
var appSocket = express();
var server = http.createServer(appSocket);

var io = require("socket.io")(server, {
    path: "/socketio",
    cors: {
        origin: "*",
        methods: ["GET", "POST"],
        allowedHeaders: ["my-custom-header"],
        credentials: true
    }
});

var rooms = require("./game/socketLogic/rooms")(io);
var gameLogic = require("./game/socketLogic/gameLogic")(io);
var teamChat = require("./game/socketLogic/teamChat")(io);
var timer = require("./game/socketLogic/timer")(io);
var lobbyChat = require("./game/socketLogic/lobbyChat")(io);

require("reflect-metadata");

var cors = require("cors");
const { type } = require("os");

appSocket.use(express.json());
appSocket.use(express.urlencoded({ extended: false }));
appSocket.use(cors());
server.listen(9000, function () {
    console.log('Server listening at port 9000.');
});

我不知道我是否忘记了什么。我也有使用 pm2 运行的上一个文件。当我进入页面时,出现下一个错误:

GET http://localhost:9000/socket.io/?EIO=4&transport=polling&t=NozbkRz 网络::ERR_CONNECTION_REFUSED

【问题讨论】:

    标签: javascript node.js reactjs nginx socket.io


    【解决方案1】:

    我解决了这个问题,我不知道我应该再次运行“npm run build”。 我把我的答案留在这里,以防它帮助别人。问候!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2018-05-12
      • 1970-01-01
      • 2015-07-19
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多