Bot Connector - кросс-диалог API Direct Line?
Я написал небольшой JavaScript-чат для работы с API прямой линии. Чтобы обеспечить безопасность моего секрета приложения, js делает ajax-вызов на мой сервер, где я делаю API-вызов на стороне сервера с секретом, чтобы сгенерировать токен и передать его обратно js. Когда пользователь отправляет сообщение, js создает сообщение, чтобы начать беседу (если у меня еще нет идентификатор сеанса разговора), а затем публикует сообщение, получает возможность получить ответ (ы).
К счастью, когда я начинал это, я что-то гуглил и просматривал некоторые посты о включении значения "from" в объект сообщения при публикации, или он просто начинается поверх каждого сообщения. Но сейчас все отлично работает, проблем нет.
Тогда я заметил то, что казалось странным. Если я открыл браузер и начал болтать, он обнаружил, где остановился другой браузер.
Я быстро понял, что это потому, что я жестко закодировал значение "от" в js. Но это все еще кажется странным... 2 разных токена, 2 разных ID разговора, 2 разных браузера и 1 разговор. Действительно ли разговоры связаны с полем from в сообщениях?
Если да, то какой смысл иметь идентификатор разговора? Они как-то используют IP и / или MAC-адрес в сочетании со свойством from?
Я все еще работаю на локальном хосте, поэтому я не тестировал его с двух разных IP-адресов.
Я знаю, что это легко исправить, если js сгенерирует случайное значение для "from", чтобы ограничить разговор временем жизни js, но это все еще кажется странным. Есть ли для этого веская причина или это ошибка?
ОБНОВЛЕНИЕ См. Вопрос GitHub для ответов: https://github.com/Microsoft/BotBuilder/issues/1307
1 ответ
Вы должны генерировать случайный идентификатор, когда ваш клиент загружается. (Или вы можете использовать существующий идентификатор пользователя в вашем приложении, например идентификатор устройства.) Поведение при автоматическом назначении было источником путаницы и не будет существовать в следующей версии Direct Line. (См. Обсуждение GitHub)