Как создать несколько экземпляров сокет-сервера на одном сервере - PullRequest
1 голос
/ 04 апреля 2019

Я хотел бы знать, возможно ли создать несколько серверов сокетов на разных URL-маршрутах только на одном сервере nodejs.

Я пытаюсь, чтобы экземпляр двух разных серверов работал по разным URL, таким как mysite / instanceA и mysite / instanceB

Когда я пытался сделать это с портом, а не с url.Приложение хорошо запускается и на портах 3000 и 3001 я получил два отличающихся приложения.Это великолепно.

let express = require('express');
let http = require('http');
let socket = require('socket.io');
let workspace = require('./src/workspace');

class Server {
    constructor(port){
        this.httpServer = http.Server(app);
        this.io = socket(this.httpServer);
        workspace.newWorkspace(this.io , app);
        this.httpServer.listen(port, function(){
            console.log('App started on : ' + port);
        });
    }
}

let app = express();
app.use(express.static("public"));
new Server(3000);
new Server(3001);

Но я хочу сделать это с помощью URL-адреса, а не порта, поэтому я попробовал что-то подобное.Я знаю, почему не работает, но я не знал, как реализовать свою цель.

Пример:

let express = require('express');
let http = require('http');
let socket = require('socket.io');
let workspace = require('./src/workspace');

const port = process.env.PORT || 3000 ;

class Server {
    constructor(){
        this.httpServer = http.Server(app);
        this.io = socket(this.httpServer);
        workspace.newWorkspace(this.io , app);
        this.httpServer.listen(port, function(){
            console.log('App started on : ' + port);
        });
    }
}

let app = express();
app.use(express.static("public"));
app.get("/", function(req, res){
    new Server();
});
app.get("/a", function(req, res){
    new Server();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...