如何使用DirectLine App Service Extension重新连接到对话?

问题描述

我正在使用DirectLine 3.0.3预览版NuGet包通过DirectLine App Service Extension创建一个.NET客户端。我可以使用directLineClient.StreamingConversations.ConnectAsync(conversationId,receiveMessageCallback)

通过WebSocket建立连接并开始新的对话

我正在保存从该会话生成的sessionId。但是,当我尝试使用该对话ID创建新的连接时,无法重新连接:

// Initialize a DirectLineClient using the secret.
var directLineClient = new DirectLineClient(
                           new Uri(_directLineEndpoint),new DirectLineClientCredentials(_directLinesecret));

var conversation =  await directLineClient.Conversations
                             .ReconnectToConversationAsync(savedConversationId);

当我执行上面的代码时,我得到一个空对话对象。当我在使用App Service Extensions之前执行相同的方法时,不会发生这种情况。

是否存在使用DirectLine App Service Extension通过WebSockets重新连接到现有对话的新方法

解决方法

因此,在进一步研究之后,似乎DirectLine App Service Extension不支持消息缓存,如该线程的答案和注释所提及:

Direct Line App Extension - How and where are messages cached?