#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, но это тоже ничего не изменило. Не уверен, что делать на данный момент. Был бы очень признателен за любую помощь или понимание.