node.js - socket.io error on PlanetHoster - Phussion Passenger
问题描述
I am stuck on this problem for a long time. I developed a mobile app using socket.io and it works fine on my local. However I am trying to deploy it on PlanetHoster and I am facing this error for socket connection:
Firefox browser:
XHR GET https://myapp.com/socket.io/?EIO=4&transport=polling&t=NYZtcqo CORS Missing Allow Origin
Chrome browser (using --disable-web-security):
XHR?EIO=4&transport=polling&t=NYZuyK1 500 xhr zone-evergreen.js:2845 1.7 kB
app.js (back-end)
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 (front-end)
import { io , Socket } from 'socket.io-client';
@Injectable({
providedIn: 'root'
})
export class SocketService {
public socket: Socket ;
constructor() {
this.socket = io("https://myapp.com");
}
}
In my socket.service.ts I tried this without success:
this.socket = io("https://myapp.com,{ transports: ['polling'], withCredentials: true });
package.json
socket.io-client": "^3.1.2" (front-end)
socket.io": "^3.1.2" (back-end)
Do you have any idea how I can resolve this ? Do you know if I have to use Node.js Cluster ?
Thanks for your help in advance
解决方案
推荐阅读
- java - 如何避免重新部署相同的工件?
- python - 如何防止crontab同时执行?
- java - Scala IntList 到 Java
- string - 如何找到包含给定字符串的双端 fastq 文件的百分比
- node.js - 使用 Node、Express、Handlebars 堆栈时,此错误的可能来源是什么?
- python - 如何打开和读取 .nc 文件?
- typescript - 不可分配给类型 'LocationDescriptor
| ((地点:地点 ) => 位置描述符 )' - amazon-web-services - Docker Compose Up 在本地工作,无法部署到 AWS
- r - tidyverse 过时的 CRAN 二进制包
- wordpress - 按元值按wordpress帖子分组