如何将socket.io与webpack-hot-middleware一起使用?

我有一个使用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?