ロードバランシングを確実にするために、複数のcloudfoundryインスタンスを持つIBM Bluemixでsocket.ioアプリケーションをデプロイする必要があります。bluemixでsocket.ioスティッキーセッションを設定する方法
私はsocket.ioのドキュメントとこのlinkの後にスティッキセッションを使用し、各ソケットが正しいインスタンスに移動することを確認しました。
残念ながら、接続イベントの直後にクライアントが切断され、 '400 xhr poll'エラーが発生します。 Googleで検索数時間後に
const cookieParser = require('cookie-parser')
const session = require('express-session')
const redis = require('redis')
const app = require('express')()
const http = require('http').Server(app)
const io = require('socket.io')(http)
const RedisStore = require('connect-redis')(session)
const redisUrl = 'myredis'
var session = session({
store: new RedisStore({client: client}),
secret: 'mysecret',
name: 'jsessionid',
resave: true,
saveUninitialized: true
})
app.use(cookieParser)
app.use(session)
io.on('connection', function (socket) {
console.log('a user is connected')
socket.on('testPing', function() {
socket.emit('testPong', {})
})
})
http.listen(process.env.PORT || 3000, function() {
console.log('listening on *:' + (process.env.PORT || 3000))
})
、私はもうしようとするのか分からない:
は、ここに私のサーバーのコードです。私は本当に助けが必要です。
ありがとうございます!
あなたのコードには、jsessionidの小文字が含まれています。あなたはそれを大文字にしましたか? –
ニース!ありがとう、クリス、それは今完璧に動作します! – Hepatus
クール。私は答えとしてこれを追加しました。受諾して投票してもらえますか? –