Я пытаюсь добавить socket.io в свой код, и следующий неудачный запрос GET неоднократно выводится на консоль всякий раз, когда я запускаю веб-сайт на своем локальном хосте.
GET http://localhost:4000/socket.io/?EIO=3&transport=polling&t=MMNC8I9 0 ()
Я не понимаю, что отправляет этот запрос. Сокет работает, хотя и не совсем так, как я предполагал *.
* Я пытаюсь создать приложение в реальном времени, которое работает с несколькими клиентами, и в данный момент обновляется только один клиент в любой момент времени. Поскольку я все еще учусь, я не уверен, нормальное ли это поведение или нет, но я хочу исправить ошибку неудачного запроса, прежде чем погрузиться в это!
Как мне исправить проблему? Заранее спасибо!
Код ниже:
server.js
const client=require("socket.io").listen(4040).sockets;
const app = express();
mongoose.connect('mongodb://localhost/<dbname>?replicaSet=rs');
mongoose.connect(config.db);
const db = mongoose.connection;
db.once("open", () => {
console.log(">>> ?️ MongoDB: Connection successful");
app.listen(9000, () => {
console.log('Node server running on port 9000');
});
// Connect to Socket.io
client.on("connection", function(){
let queries = db.collection('queries');
// Create function to send status
sendStatus = function(s) {
socket.emit("status", s);
}
});
});
app.post('/query', (req, res, next) => {
<some code omitted>
doc.save()
.then(result => {
socket.emit("query", res);
res.send({
result
});
}
});
Queries.js
constructor(props) {
...
var socket = io.connect("http://localhost:4000/");
if (socket!= undefined) {
socket.on("query", function() {
this.loadQueries();
});
}
index.html
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js"></script>