Почему сокет.io не работает с Ajax должным образом?

#javascript #node.js #ajax #socket.io #emit

#javascript #node.js #ajax #socket.io #испускать

Вопрос:

Какое-то время меня интересуют nodejs и socket.io . Я знаю, что установил nodejs и socket.ввод-вывод правильно. Я подготовил форму, затем я получил значения с помощью javascript, затем, используя ajax для моего php-файла, затем я правильно получил то, что хотел. Но пора заняться амитом с сокетом.io я всегда повторяю это. Сообщение

 GET http://localhost/socket.io/?EIO=4amp;transport=pollingamp;t=NNbUs8K 404 (Not Found)   polling-xhr.js:203 
GET http://localhost/socket.io/?EIO=4amp;transport=pollingamp;t=NNbUsVI 404 (Not Found)   polling-xhr.js:203 
.
.
.
 

Вот мой server.js

 var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);



io.on('connection', (socket) => {
    //console.log('a user connected'); //this works

    socket.on('chat message', (msg) => {
        console.log('message: '   msg);
    });

  });

http.listen(3000, () => {
  console.log('listening on *:3000');
});


 

Server.js работает правильно, я протестировал это console.log('a user connected'); , и это работает хорошо.
Затем я попытался выдать реальные данные.
вот мой HTML-файл, создающий ajax с

 <!DOCTYPE html>
<html lang="en-US">
   <head>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
   </head>
   <body>

   <div class="container">
       <div class="row">
           <div class="col-12">

           <form method="post" action="">
                <div class="form-group">
                    <label for="email">Email address</label>
                    <input type="text" class="form-control" id="email" >
                </div>
                <div class="form-group">
                    <label for="passwprd">Password</label>
                    <input type="password" class="form-control" id="password">
                </div>
              
                <button type="button" id="submit" class="btn btn-primary">Submit</button>
            </form>

           </div>
       </div>
   </div>

    

   
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C OGpamoFVy38MVBnE IbbVYUew OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho j7jyWK8fNQe A12Hb8AhRq26LrZ/JpcUGGOn Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
    <script src="node_modules/socket.io/client-dist/socket.io.js"></script>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <script>


        $(function () {
            $("#submit").on("click",function(){

                var dataString = { 
                    email : $("#email").val(),
                    password : $("#password").val(),
                };

                $.post("isle.php",{data:dataString},function(response){


                    // console.log(response);
                    var socket = io();

                    socket.emit('chat message', dataString);
                    return false;

                },"json");


            });


        });

 

Последний isle.php

 
<?php 



    $data=$_POST["data"];

    $gonderilecek=[
        "email_adres"=>$data["email"],
        "sifre"=>$data["password"],
        "mesaj"=>"mesajımız burada"
    ];


    echo json_encode($gonderilecek);


 

Я не смог решить проблему, кто-нибудь может мне помочь

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

1. Ошибка означает, что не удалось найти сервер, к которому он пытается подключиться. Можете ли вы указать полный путь. Если они на одном компьютере localhost: 3000 . Я думаю, что он пытается использовать порт 80, но ваш сервер работает на 3000

2. да, xampp использует порт 80 и создал порт 3000. я пытался var socket = io('http:// localhost:3000); , но теперь работает