【发布时间】:2019-11-24 04:28:16
【问题描述】:
我的客户端正在尝试向接收者发送消息。但是我注意到接收器有时不会收到客户端发送的所有消息,因此丢失了一些消息(不确定问题出在哪里?客户端或接收器)。 关于为什么会发生这种情况的任何建议。这就是我目前正在做的事情
在接收方这就是我正在做的事情。
这是事件处理器
async Task IEventProcessor.ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
{
foreach (var eventData in messages)
{
var data = Encoding.UTF8.GetString(eventData.Body.Array, eventData.Body.Offset, eventData.Body.Count);
}
}
这是客户端连接到事件中心的方式
var StrBuilder = new EventHubsConnectionStringBuilder(eventHubConnectionString)
{
EntityPath = eventHubName,
};
this.eventHubClient = EventHubClient.CreateFromConnectionString(StrBuilder.ToString());
如何将我的消息发送给特定的消费者
【问题讨论】:
-
能否提供完整的发送客户端代码?在发送客户端,如何调用自定义方法 Send(string content)?在接收端,我看到你在 CloseAsync() 方法中调用 CheckpointAsync(),但在官方文档中,CheckpointAsync() 是在 ProcessEventsAsync 中设置的() 方法。如果您没有一些自定义要求,您应该按照official sample 进行发送/接收。
-
是的,让我更新代码
-
@IvanYang 用户调用 SendMessage,后者调用 Send。我非常怀疑在 CloseAsync() 中放错 CheckpointAsync() 是负责任的,因为在发送消息时不会调用 CloseAsync()。
-
你能分享一下 AsyncDispatchEvent 方法吗?我刚试过,这里不能复制。
-
你的意思是直接调用SendMessage()方法,每次只发送一条消息?如果是这样,我会按照你的代码来调试它。
标签: c# azure azure-eventhub