TL;DR:机器人需要 2-9 秒才能向用户发送任何消息,即使我从MessagesController.cs
.
我使用 Bot Framework 为 Facebook Messenger 创建了几个机器人,我注意到其中一个比另一个慢得多。
两个机器人都将下面的代码作为MessagesController.cs
. 这应该将打字指示器发送给用户。
一个机器人始终需要 2 秒才能在 Facebook 上向用户显示此打字指示符,而另一个机器人需要 9 秒。
Activity typing = activity.CreateReply(null);
typing.ServiceUrl = activity.ServiceUrl;
typing.Type = ActivityTypes.Typing;
ConnectorClient connector = new ConnectorClient(new Uri(typing.ServiceUrl));
await connector.Conversations.SendToConversationAsync(typing);
第二个机器人确实做了更多的工作(调用各种 Web API),但由于这些行是控制器中的第一行,我希望输入指示器会立即发送给用户,之后机器人可以继续工作。
但是,似乎在机器人完成其工作之前不会发送消息(包括打字指示符)。
有没有办法将消息“刷新”给用户以立即发送打字指示器,还是我遇到其他问题?
更新:我已经尝试过该ConnectorClient.Dispose()
方法,但它似乎无助于加快发送消息的速度。