2016-09-27 75 views
1

我試圖使用Bot框架路由消息(從一個帳戶到另一個帳戶)。不幸的是,從發送和發送消息到真正的機器人約3秒(模擬器約1.5秒)之間的時間已經過去了。有沒有增加它的能力? 1.5秒可以接受,但延遲3秒真的很煩人。 這是Post方法和對話框中的代碼。消息路由及其速度

public async Task<HttpResponseMessage> Post([FromBody] Activity message) 
    { 
     if (message.Type == ActivityTypes.Message) 
     { 
      await Conversation.SendAsync(message,() => new SendingTestDialog()); 
     } 
     return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted); 
    } 

[Serializable] 
public class SendingTestDialog : IDialog 
{ 
    public async Task StartAsync(IDialogContext context) 
    { 
     context.Wait(MessageReceivedAsync); 

    } 

    public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument) 
    { 
     var messageReceived = await argument; 
     var message = context.MakeMessage(); 
     message.Type = messageReceived.Type; 
     message.From = new ChannelAccount("MyBotId", "MyBotName"); 
     message.ChannelId = "telegram"; //doesn't really matter 
     message.Recipient = new ChannelAccount("RoutedToAccId", "RoutedAccName"); 
     message.Text = "**Test**: " + messageReceived.Text;    
     message.Conversation = new ConversationAccount(false, "RoutedToAccId", "RoutedAccName");    

     var connector = new ConnectorClient(new Uri("https://telegram.botframework.com/")); 
     await connector.Conversations.SendToConversationAsync((Activity)message); 
     context.Done(new HttpResponseMessage(System.Net.HttpStatusCode.Accepted)); 
    } 
} 

回答

2

我通過將Azure部署位置更改爲West US解決了Direct Line API中的速度問題。

+0

非常感謝您(和@Jim Lewallen)的答覆。更改服務器位置有助於獲得大約1.5倍的速度提升! – Sovan

1

您可以確認您的機器人部署位置以及您所在的位置嗎? (大陸是我需要的)。我試圖弄清楚是否存在跨海延遲。

+0

我的機器人部署在西歐的標準:1小服務計劃。我們位於聖彼得堡(俄羅斯)。 – Sovan

+0

這可能是它的重要組成部分。 bot框架服務器目前部署在美國東部和西部。我們有機會在今年晚些時候將數據中心擴展到西歐和亞洲。 –