У меня проблема с socket.io, работающим на локальном хосте, но не при развертывании на heroku.
на стороне клиента У меня есть это:
import socketIOClient from "socket.io-client";
const socket = socketIOClient("http://127.0.0.1:4001");
и на стороне сервера:
const http = require("http");
const socketIo = require("socket.io");
const server = http.createServer(app);
const io = socketIo(server);
io.on("connection", socket => {
console.log("New client connected");
socket.on("chat message", function(msg) {
console.log("message: " + msg);
io.emit("chat message", msg);
});
Это прекрасно работает на локальном хосте, но на Heroku выдает Ошибки CORS. Чтобы бороться с этим, я попытался изменить эту строку:
const socket = socketIOClient("http://127.0.0.1:4001");
на
const socket = socketIOClient("https://radiant-retreat-86258.herokuapp.com/");
(это URL-адрес приложения).
Я также пытался изменив код следующим образом:
import io from "socket.io-client";
const socket = io();
обе эти опции убирают ошибку CORS, однако сеть показывает непрерывные 403, и сокет фактически не делает то, что должен делать.