2

私はSocket.io一緒にコーディングしたサーバーと基本的な HTTP サーバーを持っていますが、問題は、HTTP サーバーが処理socket.ioすべき要求を処理しようとすることです。

コード:

//Dependences
var sio = require('socket.io');
var http = require("http");
var NewRequestHandler = require('./NewRequestHandler').Handler;
var DisconnectHandler = require('./DisconnectHandler').Handler;
var AuthorisationRequestHandler = require('./AuthorisationRequestHandler').Handler;
//The backlog of resources
var ResourceBackLog;

var ResourceRequestHandler = require("./ResourceRequestHandler").Handler;
//Reports the IP adress and Port that it will run on.
console.log('IP address: ' +  process.env.IP);
console.log('Port: ' + process.env.PORT);
//Creates and configures a new http.server instance.
var Server = new http.Server();

//Starts both the http and socket.io server.
var io = sio.listen(Server.listen(process.env.PORT, process.env.IP, ResourceBackLog, function(error) {
    if (error) {
        console.log("Error: " + error);
    } else if (!error) {
        console.log("Server started sucsessfully.");
        Server.on('request', ResourceRequestHandler);
        console.log("Server now ready for requests.");
    }
}));

//Handles the connect and authorisation bit
io.sockets.on('connection', function(socket) {
    console.log('New Connection');
    socket.on('auth', function(Keys) {
    console.log('Autorisation Request Recived');
        AuthorisationRequestHandler(socket, Keys, function() {
            socket.on('NewRequest',  function(Request) {
                NewRequestHandler(socket, Request);
            });
            socket.on('diconnect', function() {
                DisconnectHandler(socket);
            });
        });

    });
});

ResourceRequestHandler は、URL を確認してその場所でファイルを開くことによってリソースを提供するファイルですが、/socket.io 要求も提供します。

4

3 に答える 3

0

http.createServer(RequestHandler)そして new http.Server(RequestHandler)働く

于 2013-02-17T13:43:48.310 に答える
0

私は Socket.io に別のポートをリッスンさせ、通常の http サーバーにリクエストを送信させて、それらが互いに干渉しないことを確認できるようにします。

// create server
io = http.createServer();
 io.on('uncaughtException', function(exception) {
 console.log(exception);
});
io.listen(4001);
于 2013-02-14T04:41:03.090 に答える