私はwebpack-dev-middlewareとホットパック(hot module)交換(HMR)を行うwebpack-hot-middlewareを使用しているので、ミドルウェアはWebSocketを使用してクライアントに変更をプッシュします。socket.ioとwebpack-hot-middlewareの併用方法は?
しかし、私のアプリケーションコードも、クライアントとKoaサーバの間に独自のwebsocket接続が必要です。私はそれをどのように達成するか考えていませんか? 2人が矛盾しているようです。私はそれらを並べてもらえますか?
私のサーバーコードは、この
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!!') })
そしてHMRソケットが正しく動作している
import Client from 'socket.io-client'
const io = Client()
io.on('connection', (socket) => {
console.log('+++ io connected! ++++')
io.on('disconnect',() => { console.log('disconnected', socket) })
})
のように私のクライアントに何かのようになりますが、他の一つは GET /socket.io/?EIO=3&transport=polling&t=1446911862461-0
、それらに話をしようとしています要求は失敗しています。
HMRソケットと衝突しないWebSocketを作成するにはどうすればよいですか?
これをどのように修正しましたか?私はExpressコードが動作する同様の問題に遭遇していますが、Koaの人はいつも404を返します – cyberwombat