Node.js + Socket.io + Apache

Я ищу способ интеграции Node.js + Socket.io + Apache следующим образом: Я хочу, чтобы apache продолжал обслуживать файлы HTML / JS. {{1} } Я хочу, чтобы node.js прослушивал соединение на порту 8080. Примерно так:

var util = require("util"),
    app = require('http').createServer(handler),
    io = require('/socket.io').listen(app),
    fs = require('fs'),
    os = require('os'),
    url = require('url');

app.listen(8080);

function handler (req, res) {

    fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });

  socket.on('my other event', function (data) {
    socket.emit('ok 1', { hello: 'world' });
  });

  socket.on('clientMSG', function (data) {
    socket.emit('ok 2', { hello: 'world' });
  });

});

если я получаю доступ к HTML, который подключается к этому серверу, он работает, но мне нужно перейти на mydomian.com:8080/index.html . Я хочу иметь возможность перейти на mydomian.com/index.html. и иметь возможность открыть соединение через сокет:

<script>
        var socket = io.connect('http://mydomain.com', {port: 8080});
        socket.on('news', function (data) {
            console.log(data);
            socket.emit('my other event', { my: 'data from the client' });
        });

        socket.on('connect', function (data) {
            console.log("connect");
        });

        socket.on('disconnect', function (data) {
            console.log("disconnect");
        });


            //call this function when a button is clicked
        function sendMSG()
        {
            console.log("sendMSG"); 
            socket.emit('clientMSG', { msg: 'non-scheduled message from client' });
        }

    </script>

В этом примере мне пришлось использовать fs.readFile, который не работает, когда я перехожу на порт 8080 в URL-адресе.

Есть предложения? Ткс.

6
задан oscarm 7 October 2011 в 01:52
поделиться