私は、LoopbackJSアプリケーションをIBM Bluemixにデプロイし、3つのインスタンスにわたって水平にスケーリングしました。このアプリはSocket.ioを使ってチャットシステムを実装しています。CloudFoundry/Bluemixで動作するLoopbackJSアプリケーションでスティッキセッションを有効にする方法
スティッキセッションを有効にして、同じクライアントからの各リクエストが同じアプリインスタンスにルーティングされるようにしたいとします。
12 factorsによれば、スティッキーセッションは避けられると私は知っています。しかし、socket.ioを複数のノードで適切に動作させるための唯一の解決策と思われます。
hereと同じように、ループバックアプリケーションでJSESSIONIDセッションCookieを設定する必要があるようです。
私はその後LoopbackJSアプリのserver.jsに以下でした:その変更を行った後
var session = require('express-session');
app.use(session({
secret: 's3Cur3',
name: 'JSESSIONID',
proxy: true,
resave: true,
saveUninitialized: true
}));
私はループバックアプリへのリクエストを発行するとき、私は2枚のクッキーがセットされていることがわかりますレスポンスヘッダ:私は同じブラウザからの要求を再発行する際
とにかくSet-Cookie:__VCAP_ID__=988ce9aa9b7f49cdb31d04f697d892b6024579565ea443589ed10e7a4c1c05f0; Path=/; HttpOnly, JSESSIONID=s%3Adb3KsqgZfkwEg39wrLKcsB3AWpazcOgd.TcA1vYbVB5DqemJXDS%2BLxUJ207WNC7UGmS5BpjZQ9Xc; Path=/; HttpOnly; Secure
Set-Cookie:JSESSIONID=s%3Adb3KsqgZfkwEg39wrLKcsB3AWpazcOgd.TcA1vYbVB5DqemJXDS%2BLxUJ207WNC7UGmS5BpjZQ9Xc; Path=/; HttpOnly
は、私は、要求が異なるアプリケーションインスタンスによって提供されてBluemix側のログに見ることができます。
私は実際にこれらの科目に慣れていないので、スティッキセッションを適切に設定するのに役立つ助言を本当に感謝します。 https://docs.cloudfoundry.org/concepts/http-routing.html#sessions
パー
Checkout https://github.com/rajaraodv/redispubsub – opiethehokie