как использовать сокет.ввод-вывод с двумя файлами?

#javascript #html #node.js #socket.io

#javascript #HTML #node.js #socket.io

Вопрос:

У меня проблема с Socket.io , я использую express, и мне нужны два HTML-файла, которые могут отправлять сообщения на сервер. Но один из двух файлов отправляет сообщение об ошибке:

 Failed to load resource: net::ERR_FILE_NOT_FOUND
add.html:26 Uncaught ReferenceError: io is not defined
    at add.html:26
 

Вот мой код:

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Aggiungi una storia</title>
</head>
<body>
    <!--!link-->
    <p class="i_link">Storia:</p>
    <textarea name="link" id="Story_Text" cols="100" rows="20"></textarea><br>
    <!--!name-->
    <p class="i_name">Nome:</p>
    <textarea name="name" id="Story_Name" cols="50" rows="1"></textarea><br>
    <!--!number-->
    <p class="i_number">Numero Atto:</p>
    <textarea name="number" id="Story_Number" cols="1" rows="1"></textarea><br>
    <!--!author-->
    <p class="i_author">Autore:</p>
    <textarea name="author" id="Story_Author" cols="50" rows="1"></textarea><br>
    <button onclick="myFunction()">Click me</button><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();

function myFunction() {
    let link = $('#Story_Text').val();
    let number = $('#Story_Number').val();
    let author = $('#Story_Author').val();
    let name = $('#Story_Name').val();
    console.log(link   number   author   name)
}
</script>
</body>
</html>
 

Как я могу это решить?

Заранее спасибо и извините за плохой английский!

Ответ №1:

Вы установили socket.io ? npm install socket.io

Ответ №2:

Кажется, ваша ссылка на «Socket.io » файл js неверен.

 <script src="/socket.io/socket.io.js"></script> <!-- here -->
 

Пожалуйста, убедитесь, что он указывает на правильный файл, проверьте вкладку сети браузера, чтобы увидеть, правильно ли загружен скрипт. Когда это произойдет, функция ввода-вывода будет доступна

Ответ №3:

Похоже, он не может найти файл /socket.io/socket.io.js

https://socket.io/docs/v3/client-installation/#Installation

По умолчанию сокет.Сервер ввода-вывода предоставляет клиентский пакет в /socket.io/socket.io.js .

У вас запущен сервер? В противном случае вы можете попробовать путь cdn, чтобы посмотреть, работает ли это:

 <script src="https://cdn.socket.io/socket.io-3.0.1.min.js"></script>
 

Комментарии:

1. теперь отправьте эту ошибку: не удалось загрузить ресурс: net:: ERR_NAME_NOT_RESOLVED DevTools не удалось загрузить исходную карту: не удалось загрузить содержимое для cdn.socket.io/socket.io.min.js.map : Ошибка HTTP: код состояния 404, net::ОШИБКА HTTP_RESPONSE_CODE_FAILURE file/socket.io/?EIO= 4amp; transport=опрос amp; t= NTEdATQ:1 Не удалось загрузить ресурс: net::ERR_NAME_NOT_RESOLVED socket.io-3.0.1.min.js:6 ПОЛУЧИТЬ file/socket.io/?EIO=4amp;transport=опрос amp;t = NTEdBJq net::ERR_NAME_NOT_RESOLVED

2. Вы запускаете свой веб-сайт локально без сервера? Просто догадываюсь здесь, но это может объяснить, почему он не загружает скрипт.