2

직통 API를 사용하기 위해 간단한 JavaScript 채팅을 작성했습니다. 내 앱 비밀을 안전하게 유지하기 위해 js는 내 서버에 아약스 호출을 만들어 서버 측 API 호출을 만들어 비밀을 토큰을 생성하고이를 js로 다시 전달합니다. 사용자가 메시지를 제출하면 js는 대화를 시작하는 게시물을 만듭니다 (아직 conversationID가없는 경우). 그러면 메시지를 게시하고 응답을 얻습니다.봇 커넥터 - Direct Line API 교차 대화?

운 좋게도, 내가 이것을 시작했을 때, 뭔가를 검색하고 게시 할 때 메시지 개체의 "보낸 사람"값을 포함시키는 것에 대한 게시물을 건너 뛰었거나 모든 게시물에서 시작합니다. 그러나 이제 모든 것이 훌륭합니다. 문제 없습니다.

그런데 나는 이상하게 보였다. 브라우저를 열고 채팅을 시작하면 다른 브라우저가 중단 된 부분이 나타납니다.

나는 js에서 "from"값을 하드 코딩했기 때문에 그것이 곧 깨달았다. 하지만 여전히 이상하게 보입니다 ... 2 개의 다른 토큰, 2 개의 다른 대화 ID, 2 개의 다른 브라우저 및 1 개의 대화. 대화가 메시지의 보낸 사람 필드와 실제로 연결되어 있습니까?

그렇다면 대화 ID는 무엇입니까? 그들은 어떻게 든 from 속성과 조합하여 IP 및/또는 MAC 주소를 사용하고 있습니까?

로컬 호스트에서 작업 중이므로 두 개의 다른 IP에서 테스트하지 않았습니다.

js가 js의 수명에 대한 대화를 제한하기 위해 "보낸 사람"의 임의의 값을 생성하도록하면 쉽게 해결된다는 것을 알지만 여전히 이상하게 보입니다. 좋은 이유가 있거나 버그입니까?

UPDATE 답변에 대한 github의 질문을 참조하십시오 : https://github.com/Microsoft/BotBuilder/issues/1307#issuecomment-249187807

답변

1

당신은 때 클라이언트로드 임의의 ID를 생성해야합니다. (또는 장치 ID와 같이 응용 프로그램 내에서 기존 사용자 ID를 사용할 수 있습니다.) 자동 할당 동작은 혼란의 원인이었으며 다음 버전의 Direct Line에는 존재하지 않습니다. (GitHub Discussion 참조)

+0

(답변을 추가하므로이 문제가 해결되었음을 알 수 있습니다) – Lars