Я построил бота в NodeJS с использованием Microsoft Bot Framework и развернул его на удаленном сервере. Я подключаюсь к боту с моей локальной машины, используя Bot-Emulator и ngrok, чтобы получить ответ. Когда я подключаюсь к боту одновременно с двух разных компьютеров, данные о состоянии перезаписываются, и я получаю одинаковый ответ для разных идентификаторов.
Я попытался сгенерировать случайный идентификатор, используя UUID, чтобы различать разговоры, а также попытался сохранить идентификатор пользователя отдельно для разных сеансов, но он не работает для меня.
Есть ли способ для бота обрабатывать каждый экземпляр как отдельный сеанс или просто не перезаписывать пользовательские данные и хранить их отдельно, чтобы они могли дать мне правильный ответ на оба запроса? Большое спасибо.
bot.dialog('/employee', [
function (session) {
session.send("Welcome to the information portal.");
builder.Prompts.text(session, "Please provide the Network ID");
console.log(session.message.address.conversation.id);
},
function (session, results) {
//console.log(sessionid);
session.userData.employeeID = results.response;
session.endDialog("What information would you like for the employee?");
console.log(session.message.address.conversation.id);
}
])
bot.dialog('/email', [
function (session) {
const https = require("https");
const url =
"https://**********" + session.userData.employeeID;
https.get(url, res => {
res.setEncoding("utf8");
let body = "";
res.on("data", data => {
body += data;
});
res.on("end", () => {
body = JSON.parse(body);
console.log(
`${body[0]['****]} is working in ${body[0]['****']}.`,
);
session.send(`${body[0]['****']}'s email ID is ${body[0]['****']}.`);
console.log(session.message.address.conversation.id);
console.log(session.userData.employeeID);
console.log(session.userData);
var msg = `I hope your query was fulfilled. Thank you.`;
session.endConversation(msg);
});
});
}
])