Tôi có một máy chủ Koa sử dụng webpack-dev-middleware và webpack-hot-middleware đang thực hiện thay thế mô-đun nóng (HMR), vì vậy phần mềm trung gian sử dụng websocket để đẩy các thay đổi cho máy khách.
Nhưng mã ứng dụng của tôi cũng cần kết nối websocket riêng giữa máy khách và máy chủ Koa. Tôi không biết làm thế nào để đạt được điều đó? Có vẻ như cả hai đang mâu thuẫn. Tôi có thể để chúng ở cạnh nhau không?
Mã máy chủ của tôi trông giống như thế này
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!!') })
Và khách hàng của tôi một cái gì đó như
import Client from 'socket.io-client'
const io = Client()
io.on('connection', (socket) => {
console.log('+++ io connected! ++++')
io.on('disconnect', () => { console.log('disconnected', socket) })
})
Ổ cắm HMR đang hoạt động bình thường, nhưng ổ cắm còn lại đang cố kết nối GET /socket.io/?EIO=3&transport=polling&t=1446911862461-0
và những yêu cầu đó không thành công.
Làm cách nào để tạo một websocket không xung đột với ổ cắm HMR?