Я получаю ошибку ввода-вывода, не определяемую в моем сокете.клиент ввода-вывода

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

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

Вопрос:

Это мой серверный код для создания соединения с сокетом.Я использую node.js код и использование сокета.ввод-вывод в этом.

 const path = require('path');
const http = require('http');
const express = require('express');
const socketIO = require('socket.io');
const port = process.env.PORT || 3000;
var app = express();
var server = http.createServer(app);
var io = socketIO(server);


io.on('connection', (socket) => {
  console.log('New user connected');


})
  

и это мой клиентский код, я использую обычный javascript в качестве клиента, и я использую версию 2.1.1 socket.io Я получаю ошибку ввода-вывода not defiend, я очень новичок в socket.io, пожалуйста, помогите мне с этим.

 <!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0">
    <meta charset="utf-8">

  </head>
  <body>

    <script>

 $(document).ready(function(){
   var socket = io('http://localhost:3000');
        console.log("Socket connected" socket.connected);

        socket.on('notification', function(value){
            //insert your code here
        });
});


    </script>


        <script  src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

        <script src="http://localhost:3000/socket.io/socket.io.js"></script>



     </body>
</html>
  

Ответ №1:

Ваш первый скрипт (тот, который использует io ) выполняется перед вашими другими скриптами (скриптами jQuery и Socket). Перемещайте свои скрипты следующим образом:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

<script src="http://localhost:3000/socket.io/socket.io.js"></script>

<script>
  $(document).ready(function() {
    var socket = io('http://localhost:3000');
    console.log("Socket connected"   socket.connected);

    socket.on('notification', function(value) {
      //insert your code here
    });
  });
</script>
  

Ответ №2:

Поскольку я новичок в веб-разработке, это может быть неправильно, но я бы попытался разместить ваш скрипт под скриптом, в который вы импортируете socket.io.js

В вашей функции вы вызываете io, но перед ее вызовом, похоже, она не объявлена.

Надеюсь, это сработает.