Сокет.сервер ввода-вывода получает ошибку 405 при развертывании heroku

#node.js #reactjs #heroku #socket.io

#node.js #reactjs #heroku #socket.io

Вопрос:

Я довольно новичок в node.js / express и socket.io . Я создал приложение, используя ruby on rails для внутреннего API и react для внешнего интерфейса. Я попытался реализовать сокет.ввод-вывод для части приложения с сообщениями чата в реальном времени (которая не использует rails backend api, кроме как для сохранения отправленных сообщений). Я реализовал сокет.ввод файлов сервера и клиента в интерфейс react с помощью node и express. Вот код на стороне сервера:

 const express = require('express')
const app = express()
const cors = require('cors')
const server = require('http').createServer(app)
const PORT = process.env.PORT || 3000

server.listen(PORT, () => console.log(`Listening on ${PORT}`))

app.use(cors())

const socket = require('socket.io')
const io = socket(server)

io.on('connect', (socket) => {
    console.log('Connected')
    socket.on('disconnect', () => console.log('Disconnected'))
})
  

и код на стороне клиента:

 import openSocket from 'socket.io-client'

const socket = openSocket()

socket.on('connect', () => {
    console.log('connected')
})
  

Когда я тестирую код в локальном использовании npm start и nodemon server.js , кажется, все работает, и я вижу сообщение «Подключено» с консоли. Однако, когда я попытался выполнить развертывание в Heroku, я получаю ошибку 405 без особых подробностей:

 polling-xhr.js:268 POST https://vir-clsrm.herokuapp.com/socket.io/?EIO=3amp;transport=pollingamp;t=NIicfiD 405 (Not Allowed)
  

Я попытался внедрить cors, думая, что это может быть проблемой, но, похоже, это совсем не помогло. Я также включил привязку к сеансу в Heroku, но это тоже ничего не изменило. Не уверен, что делать на данный момент. Был бы очень признателен за любую помощь или понимание.