Ошибка использования socket.io с http-сервером

Я создаю веб-приложение, которому нужен http-сервер для запуска p5 и некоторые звуковые библиотеки. Приложению также нужны данные из Kinect, которые я получаю с помощью NodeJS, как описано здесь. Затем я запускаю скрипт Node для отправки данных из Kinect на страницу:

    //broadcast.js
    var Kinect2 = require('kinect2'),
    express = require('express'),
    app = express(),
    server = app.listen(8080),
    io = require('socket.io').listen(server);

    var kinect = new Kinect2();    
    if(kinect.open()) {        
       console.log('Server listening on port 8080');

       app.get('/', function(req, res) {
        //res.sendFile(__dirname + '/websocket-test.html');    
        res.sendFile('http://127.0.0.1:8080/websocket-test.html');
    });

    kinect.on('bodyFrame', function(bodyFrame){
        io.sockets.emit('bodyFrame', bodyFrame);
    });

    kinect.openBodyReader();
}

и следующий скрипт на html-странице, которую я открываю с помощью http-сервера:

//websocket-test.html
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>

<script>

var socket = io();
console.log("script");
socket.on('bodyFrame', function(bodyFrame){
console.log("On");
   for(var i = 0;  i < bodyFrame.bodies.length; i++) {
            if(bodyFrame.bodies[i].tracked) {
                console.log(bodyFrame.bodies[i].joints[1]);
            }
        }
    });

</script>

Теперь, если я просто запустил broadcast.js с помощью командного узла broadcast.js на терминале и отправлю данные в __dirname + '/websocket-test.html', я смогу получить данные kinect.

Однако, если я тоже запускаю http-сервер и пытаюсь открыть html-страницу, используя 127.0.0.1:8080/websocket-test.html, я получаю следующую ошибку в веб-консоли:

Ошибка консоли

Есть ли способ отправить данные kinect при использовании http-сервера?

0 ответов

Другие вопросы по тегам