私は、RiveScript(ノード用のチャットボットモジュール)を使用するMeteorアプリケーションを持っています。モジュールは、ユーザー入力のいくつかの側面を節約することができます。私の問題は、サーバー上でモジュールを実行すると、1人のユーザーではなくすべてのユーザーに対して状態が保存されることです。各ユーザーの状態を作成するにはどうすればよいですか?Meteorアプリケーションのサーバー状態とユーザー、状態の作成方法は?
一つの方法は、そのように、各ユーザーのための新たなボットを作成するには、次のようになります。
let RiveScript = require('rivescript');
let users = {};
Meteor.onConnection(connection => {
users[connection.id] = new RiveScript({utf8: true});
users[connection.id].bot.loadDirectory('directory/',
() => {
users[connection.id].bot.sortReplies();
}
);
connection.onClose(() => {
delete users[connection.id]
})
});
ただし、メモリ管理の観点から、これは問題を引き起こす可能性があります。この点でよく使われるパターンはありますか?
状態がによって処理されますRiveScriptオブジェクトであり、他の方法でそのオブジェクトの外側の状態を明示的に処理することはできません。私はあなたの提案を完全に把握しているとは思いませんか? –