Почему socket.io.js не найден в устройствах?

Я работаю над проектом, соединяющим p5.js с Reaper для отправки на другие устройства (iPad или другой компьютер) партитуры, которая автоматически меняет страницы с музыкой, прочитанной Reaper.

Я активировал OSC в Reaper и могу получить временную шкалу в проекте p5.js, чтобы использовать ее для отображения счета и изменения, но когда я пытаюсь подключиться к другому устройству, я ничего не вижу. Ошибка в том, что не удалось загрузить ресурсы, в частности, http://localhost:8081/socket.io/socket.io.js не найден.

Сначала я использую node.js, чтобы открыть этот файл с именем bridge.js, чтобы открыть соединение с OSC Reaper и разместить сервер на:3000.

var osc = require('node-osc');
var io = require('socket.io')(8081);

var oscServer, oscClient;

var isConnected = false;

io.sockets.on('connection', function(socket) {
  console.log('connection');
  socket.on("config", function(obj) {
    isConnected = true;
    oscServer = new osc.Server(obj.server.port, obj.server.host);
    oscClient = new osc.Client(obj.client.host, obj.client.port);
    oscClient.send('/status', socket.sessionId + ' connected');
    oscServer.on('message', function(msg, rinfo) {
      socket.emit("message", msg);
    });
    socket.emit("connected", 1);
  });
  socket.on("message", function(obj) {
    oscClient.send.apply(oscClient, obj);
  });
  socket.on('disconnect', function() {
    if (isConnected) {
      oscServer.kill();
      oscClient.kill();
    }
  });
});



var path = require('path');
var express = require('express');
var app = express();

var jsPath = path.join(__dirname, '/public');

app.use(express.static(jsPath));

var server = app.listen(3000, function() {
  var host = 'localhost';
  var port = server.address().port;
  console.log('listening on http://' + host + ':' + port + '/');
});

В общей папке у меня есть файлы.js и index.html, я вставил сюда index.html:

<html>

<head>

  <meta charset="UTF-8">

  <script src="http://localhost:8081/socket.io/socket.io.js"></script>
  <script language="javascript" src="libraries/p5.js"></script>
  <script language="javascript" src="sketch.js"></script>
  <script language="javascript" src="functions.js"></script>

  <style>
    body {
      padding: 0;
      margin: 0;
      display: flex;

      /* This centers our sketch horizontally. */
      justify-content: center;

      /* This centers our sketch vertically. */
      align-items: center;

      background-color: black;
    }
  </style>

</head>

<body>

</body>

</html>

Это оно! Может кто-нибудь понять, как я могу решить мою ситуацию? Я музыкант, а не программист. Заранее спасибо за помощь!

1 ответ

Я полагаю, что ваша ошибка может заключаться в том, что вы говорите браузеру искать файл socket.io.js на localhost. Ты видишь, "localhost:8081/file.js"говорит браузеру, чтобы он посмотрел на локальном компьютере сервер, работающий на порту 8081, и получил файл file.js. Однако, когда вы открываете веб-страницу на IPad, на этом IPad не работает сервер, поэтому браузер не ' не знаю, что делать с указанным вами путем к файлу.

Подумайте об изменении вашего кода на это:

  <script src="socket.io/socket.io.js"></script>
  <script language="javascript" src="libraries/p5.js"></script>
  <script language="javascript" src="sketch.js"></script>
  <script language="javascript" src="functions.js"></script>
Другие вопросы по тегам