#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);
, но теперь работает