PlanetHoster 上的 socket.io 错误 - Phussion 乘客

时间:2021-04-05 21:46:39

标签: node.js nginx ionic-framework socket.io

我被这个问题困扰了很长时间。我使用 socket.io 开发了一个移动应用程序,它在我的本地运行良好。但是,我正在尝试将它部署在 PlanetHoster 上,但我遇到了套接字连接错误:

火狐浏览器:
XHR GET https://myapp.com/socket.io/?EIO=4&transport=polling&t=NYZtcqo CORS Missing Allow Origin

Chrome 浏览器(使用 --disable-web-security):
XHR?EIO=4&transport=polling&t=NYZuyK1 500 xhr zone-evergreen.js:2845 1.7 kB

app.js(后端)

const express = require('express');

// Http Handling (parsing & securing)
const bodyparser = require('body-parser');
const helmet = require ('helmet');
const cors = require('cors');

// Import public API layer v1
const roomApi = require('./core/layer_api/roomApi');
const userApi = require('./core/layer_api/userApi');
const http = require('http');
const serverSocket = http.createServer(server);
const io = require('socket.io')(serverSocket, {
    cors: {
        origin: "http://localhost:8100",
        methods: ["GET", "POST"]
    }
});

io.on('connection', function (socket) {
.................................
});

if (typeof(PhusionPassenger) !== 'undefined') {
    serverSocket.listen('passenger');
} else {
    serverSocket.listen(3000);
}

server.listen(0, 'passenger');

socket.js(前端)

import { io , Socket } from 'socket.io-client';

@Injectable({
    providedIn: 'root'
  })
  export class SocketService {
        public socket: Socket ;
        
        constructor() {
            this.socket = io("https://myapp.com");
         }
}

在我的 socket.service.ts 中,我尝试了这个但没有成功:
this.socket = io("https://myapp.com,{ transports: ['polling'], withCredentials: true });

package.json
socket.io-client": "^3.1.2"(前端)
socket.io": "^3.1.2"(后端)

你知道我该如何解决这个问题吗?你知道我是否必须使用 Node.js Cluster 吗?

<块引用>

https://socket.io/docs/v3/using-multiple-nodes/index.html

提前感谢您的帮助

0 个答案:

没有答案
相关问题