У меня есть сервер Koa, использующий webpack-dev-middleware и webpack-hot-middleware, выполняющий горячую замену модуля (HMR), поэтому промежуточное программное обеспечение использует веб-приложение для изменения изменений для клиента.
Но мой код приложения также нуждается в собственном соединении с сервером между клиентом и сервером Koa. Я понятия не имею, как это достичь? Похоже, что они конфликтуют. Могу ли я иметь их бок о бок?
Мой код сервера выглядит примерно так:
const compiler = webpack(webpackConfig)
const app = new Koa()
app.use(webpackDevMiddleware(compiler, {
quiet: true,
noInfo: true
stats: {
colors: true,
reasons: true
}
})))
app.use(webpackHotMiddleware(compiler))
const server = require('http').createServer(app.callback())
const io = require('socket.io')(server)
io.on('connection', function() { console.log('socket connection!!') })
И мой клиент что-то вроде
import Client from 'socket.io-client'
const io = Client()
io.on('connection', (socket) => {
console.log('+++ io connected! ++++')
io.on('disconnect', () => { console.log('disconnected', socket) })
})
Сокет HMR работает правильно, но другой пытается поговорить с
GET /socket.io/?EIO=3&transport=polling&t=1446911862461-0
, и эти запросы не работают.
Как создать веб-узел, который не сталкивается с гнездом HMR?