Ошибка подключения к файлу socket.io на локальном хосте - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть это в server.js

//socket io config
const server = require('http').createServer(app)
const io = require('socket.io')(server)
io.on('connection', function (socket) {
  socket.on('SOCKET_COMMENT_RECEIVED', ({ notification }) => {
    io.emit(`SOCKET_COMMENT_RECEIVED`, notification)
  })
  //and many more
})

В моем клиенте (реагирует)

import io from 'socket.io-client'
const socket = io('localhost:3001') // working in localhost

в моем продукте я делаю эту проверку

let socket = io('localhost:3001')
if(process.env.NODE_ENV === 'production') { socket = 
  io('https://api.example.com:3001') 
}

Почему это так?Я не думаю, что это проблема cors, потому что я уже сделал

app.use(cors({
  origin: true,
  credentials: true
}))

мой package.json deps

"socket.io": "^2.1.1",
"socket.io-client": "^2.1.1",

1 Ответ

0 голосов
/ 18 сентября 2018

В коде вашего сервера, пожалуйста, добавьте следующую строку

io.set('origins', '*:*');

Таким образом, ваш код будет

  //socket io config
  const server = require('http').createServer(app)
  const io = require('socket.io')(server)
  io.set('origins', '*:*');
  io.on('connection', function (socket) {
    socket.on('SOCKET_COMMENT_RECEIVED', ({ notification }) => {
      io.emit(`SOCKET_COMMENT_RECEIVED`, notification)
    })
    //and many more
  })

Для получения дополнительной помощи следуйте этому учебнику & это вопрос.

Исходный код доступен здесь .

Надеюсь, это поможет вам !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...