Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli klient używa interfejsu WebSocket do odbierania komunikatów, ale traci połączenie, może być konieczne ponowne nawiązanie połączenia. W tym scenariuszu klient musi wygenerować nowy adres URL strumienia protokołu WebSocket, którego może użyć do ponownego nawiązania połączenia z konwersacją.
Generowanie nowego adresu URL strumienia protokołu WebSocket
Aby wygenerować nowy adres URL strumienia protokołu WebSocket, który może służyć do ponownego nawiązywania połączenia z istniejącą konwersacją, należy wysłać następujące żądanie:
GET https://directline.botframework.com/v3/directline/conversations/{conversationId}?watermark={watermark_value}
Authorization: Bearer SECRET_OR_TOKEN
W tym identyfikatorze URI żądania zastąp ciąg {conversationId} identyfikatorem konwersacji i zastąp ciąg {watermark_value} wartością znaku wodnego (jeśli watermark
parametr jest dostępny). Parametr watermark
jest opcjonalny.
watermark
Jeśli parametr jest określony w identyfikatorze URI żądania, konwersacja odtwarza znak wodny, co gwarantuje, że żadne komunikaty nie zostaną utracone.
watermark
Jeśli parametr zostanie pominięty z identyfikatora URI żądania, będą odtwarzane tylko komunikaty odebrane po ponownym połączeniu żądania.
Poniższe fragmenty kodu zawierają przykład żądania ponownego połączenia i odpowiedzi.
Żądanie
GET https://directline.botframework.com/v3/directline/conversations/abc123?watermark=0000a-42
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn
Reakcja
Jeśli żądanie zakończy się pomyślnie, odpowiedź będzie zawierać identyfikator konwersacji, token i nowy adres URL strumienia protokołu WebSocket.
HTTP/1.1 200 OK
[other headers]
{
"conversationId": "abc123",
"token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
"streamUrl": "https://directline.botframework.com/v3/directline/conversations/abc123/stream?watermark=000a-4&t=RCurR_XV9ZA.cwA..."
}
Ponowne nawiązywanie połączenia z konwersacją
Klient musi użyć nowego adresu URL strumienia Protokołu WebSocket , aby ponownie nawiązać połączenie z konwersacją w ciągu 60 sekund. Jeśli w tym czasie nie można nawiązać połączenia, klient musi wydać kolejne żądanie ponownego połączenia w celu wygenerowania nowego adresu URL strumienia.
Jeśli w ustawieniach Direct Line włączono opcję rozszerzonego uwierzytelniania, może zostać wyświetlony błąd 400 "MissingProperty", jeśli nie masz poprawnie skonfigurowanego tokenu dołączonego do żądania.