我有一台使用webpack-dev-middleware和webpack-hot-middleware进行热模块替换(HMR)的Koa服务器,因此中间件使用websocket将更改推送给客户端。如何将socket.io与webpack-hot-middleware一起使用?
但我的应用程序代码还需要它自己的客户端和Koa服务器之间的websocket连接。我不知道如何实现这一目标?似乎这两者是相互冲突的。我可以并排放在一起吗?
我的服务器代码看起来是这样的
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套接字冲突的web套接字?
你是如何解决这个问题的?我遇到类似的问题,快递代码的作品,但Koa一直产生404 – cyberwombat