Как создать несколько каналов на сервере веб-сокетов с помощью веб-сокета NodeJS? - PullRequest
0 голосов
/ 24 мая 2019

Я использую этот код для обработки запроса пользователя на сервере веб-сокетов:

var WebSocketServer = require('websocket').server;
var http = require('http');
var server = http.createServer(function(request, response) {
    console.log((new Date()) + ' Received request for ' + request.url);
    response.writeHead(405);
    response.end();
});
server.listen(3333, function() {
    console.log((new Date()) + ' Server is listening on port 3333');
});
wsServer = new WebSocketServer({
    httpServer: server,
    autoAcceptConnections: false
});
function originIsAllowed(origin) {
    // put logic here to detect whether the specified origin is allowed.
    return true;
}

wsServer.on('request', function(request) {
    if (!originIsAllowed(request.origin)) {
        // Make sure we only accept requests from an allowed origin
        request.reject();
        console.log((new Date()) + ' Connection from origin ' + request.origin + ' rejected.');
        return;
    }

    var connect = request.accept('register', request.origin)
    connect.on('message', function(messageText) {
        // do business logic here if message coming into the register channel
    })

    connect.on('close', function(reasonCode, description) {
        console.log((new Date()) + ' Peer ' + connect.remoteAddress + ' disconnected.');
    });
})

Теперь, как я могу создать другой канал для обработки других типов сообщений?

Iпробовал это, но получаю WebSocketRequest may only be accepted or rejected one time. сообщение об ошибке:

    var connect = request.accept('register', request.origin)
    connect.on('message', function(messageText) {
        // business logic here if message coming into the register channel
    })

    var getPhotos = request.accept('get_photos', request.origin)
    getPhotos.on('message', function(messageText) {
        // business logic here if message coming into the get_photos channel
    })

Как я могу обрабатывать несколько каналов?Возможно ли это с websocket npm пакетом?

...