Ошибка использования 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-сервера?