В основном мой сервер socket.io работает только для ... одного компьютера, я полагаю.Работает, если я использую Chrome, Chrome incognito, Edge.Я пытался использовать приложение с моим телефоном, находясь на том же Wifi, и именно здесь я столкнулся с проблемами.Это выглядело как socket.io просто не будет работать тогда.Я чувствую, что это работает только для одного клиента (может быть, IP, проблемы с портами?)
Я использую socket.io в паре с React js, и, о боже, было больно в заднице заставить их работать как локально, так ив Heroku.
Вот мой файл сервера /src/server/index.js
const express = require("express");
const http = require("http");
const socketIo = require("socket.io");
const axios = require("axios");
const port = process.env.PORT || 4001; // Only this port works for some reason
const index = require("./routes/index");
const app = express();
const path = require('path');
const server = http.createServer(app);
const io = socketIo(server); // < Interesting!
io = socketIo.listen(app);
io.configure(function () {
io.set("transports", ["xhr-polling"]);
io.set("polling duration", 10); // Recommended from online guys
});
app.use(express.static(path.join(__dirname, '../../index')));
app.get('/', (req, res, next) =>
res.sendFile(index))
io.on("connection", socket => {
console.log("New client connected");
})
server.listen(port, () => console.log(`Listening on port ${port}`));
Я использую файл конфигурации для динамического изменения сервера и импортирую его каждый раз, когда мне нужно подключиться кмой сокет через socket.io-client
let server = 'ws://XXXXXXXXXXXXX.herokuapp.com/socket.io/?EIO=4&transport=websocket';
const env = process.env.NODE_ENV;
if (env === 'development') {
server = 'http://127.0.0.1:4001';
}
module.exports = server;
В чем может быть проблема?Почему работает только на моем корневом компьютере?Может быть проблема динамо или что-то еще?Я - полный новичок и с heroku, и с socket.io, поэтому любая информация будет полезна.
** РЕДАКТИРОВАТЬ:
Я не уверен, но я чувствую, что сервер работает вмой VS код заставил его работать в моем приложении heroku.Я выключил его, и сервер просто продолжает отправлять ошибку net :: ERR_CONNECTION_REFUSED.