新しいアプリケーションロードバランサ(ALB)で動作するWebSocketを取得できました。
まず、ALBの新しいターゲットグループを作成します。このターゲットグループはアプリケーションと同じポートを使用する必要があり、ヘルスチェックを設定する必要があります。しかし、主な違いは、粘着性を有効にする必要があることです。
次に、あなたのALBに新しいリスナーのルールを追加します。このルールには、WebSocketセットアップ - /socket.ioをルーティングするパスが必要です。また、作成したターゲットグループにターゲットグループ名を設定します。
私は(アマゾンのLinux AMIから派生したインスタンス上で実行されている)私のサーバーのノード/ハピ/ Socket.ioを使用しています。基本的な設定は次のとおりです。私はsocket.io-クライアントで、私のクライアントのための角度の1.5倍を使用していますWebSocket.jsが
var io = null;
module.exports = {
Initialize: function (http) {
io = require('socket.io')(http);
io.on('connection', function (socket) {
console.log('Websocket ' + socket.id + ' connected.');
socket.on('disconnect', function() {
console.log('Websocket ' + socket.id + ' disconnected.');
});
});
}
};
ある
const hapi = require('hapi');
const websocket = require('./WebSocket');
var server = new hapi.Server();
server.connection(config.Application);
websocket.Initialize(server.listener);
。次のようにWebSocketクライアントオプションを設定することが重要です。そうしないと、接続できなくなります。
(function() {
'use strict';
angular
.module('XXXXX', [])
.run(runHandler);
runHandler.$inject = ['WebSocketService'];
function runHandler(WebSocketService) {
WebSocketService.Initialize();
}
})();
のWebSocketサービス:インスタンスは、少なくともすべての「アイドルタイムアウト」の秒いくつかのデータを送信しない場合
(function() {
'use strict';
angular
.module('XXXXX')
.factory('WebSocketService', WebSocketService);
WebSocketService.$inject = [];
function WebSocketService() {
var socket = null;
function initialize() {
var url = 'http://' + ALB_URL + ':5800';
socket = io(url, {transports: ['websocket'], upgrade: false});
socket.on('connect', function() {
console.log('Socket connected');
});
socket.on('disconnect', function() {
console.log('Socket disconnected');
});
}
return {
Initialize: initialize
};
}
})();
公式ブログからws://とwss://プロトコル」を参照してください。 –
この発表とALBのFAQセクションにもかかわらず、https://aws.amazonにもかかわらずALB(httpステータス501未実装) – nont
に同じエラーが表示されます。com/elasticloadbalancing/applicationloadbalancer/faqs/ – nont