Direct Line API を操作する簡単な JavaScript チャットを作成しました。アプリの秘密を安全に保つために、js はサーバーに ajax 呼び出しを行い、秘密を使用してサーバー側の API 呼び出しを行い、トークンを生成してそれを js に戻します。ユーザーがメッセージを送信すると、js は投稿を作成して会話を開始し (会話 ID がまだない場合)、メッセージを投稿すると、応答を取得するために get が実行されます。
幸いなことに、私がこれを始めたとき、私は何かをグーグルで検索し、投稿時にメッセージオブジェクトに「from」の値を含めるか、すべての投稿からやり直すことについての投稿をざっと見ました。しかし、今ではすべてがうまく機能し、問題はありません。
それから私は奇妙なことに気づきました。ブラウザを開いてチャットを開始すると、他のブラウザが中断したところから再開されました。
js で "from" 値をハードコーディングしたことが原因であることがすぐにわかりました。しかし、それでも奇妙に思えます... 2 つの異なるトークン、2 つの異なる会話 ID、2 つの異なるブラウザー、および 1 つの会話。会話は本当にメッセージの from フィールドによってリンクされていますか?
もしそうなら、会話IDを持つことのポイントは何ですか? from プロパティと組み合わせて IP アドレスや MAC アドレスを何らかの形で使用していますか?
私はまだローカルホストで作業しているため、2 つの異なる IP からの接続はテストしていません。
会話をjsの存続期間に制限するために、jsに「from」のランダムな値を生成させることで簡単に修正できることはわかっていますが、それでも奇妙に思えます。それには正当な理由がありますか、それともバグですか?
更新回答については、github の質問を参照してください: https://github.com/Microsoft/BotBuilder/issues/1307#issuecomment-249187807