我有一个使用webpack-dev-middleware和webpack-hot-middleware进行热模块替换(HMR)的Koa服务器,因此中间件使用websocket将更改推送到客户端。
但是我的应用程序代码还需要在客户端和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插座冲突的Websocket?