GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404 (не найдено) - PullRequest
2 голосов
/ 19 марта 2019

Я создаю сервер на основе websocket в nodejs в качестве внутреннего интерфейса и приложения ionic 4 в качестве внешнего интерфейса, когда я пытаюсь подключиться к своему серверу, я получаю эту ошибку

GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404 (Not Found)

Вот мой код сервера

const PORT = 8080;
const WebSocket = require("ws").Server;
var express = require("express");
var app = express();

app.use(function(req, res, next) {
 res.header("Access-Control-Allow-Origin", "http://localhost:8100");
 res.header(
  "Access-Control-Allow-Headers",
  "Origin, X-Requested-With, Content-Type, Accept"
);
 res.header("Access-Control-Allow-Credentials", true);
 next();
});
var http = require("http").createServer(app);

http.listen(PORT, "localhost", function() {
console.log("listening in http://localhost:" + PORT);
});
const wss = new WebSocket({ server: http });
 wss.on("connection", function connection(ws) {
  ws.on("message", function incoming(message) {
  console.log("received: %s", message);
 });
 ws.send("I am server ^_^");
});

1 Ответ

2 голосов
/ 21 марта 2019

Для дальнейшего использования и, как вы хотите, чтобы получить больше разъяснений, это произошло из-за использования протокола websockets в backend и socket.io во внешнем интерфейсе вместо простого клиента WebSockets.


Когда socket.io хочет подключиться к серверу, запрос upgrade отправляется на http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404 по этому пути.Поскольку в бэкэнде не настроен сервер Socket io, очевидно, что сервер экспресс-отправки отправляет 404 not found вместо ответа на обновление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...