我有一个基于 Asp.NET WebAPI 的游戏后端, 我正在使用 IoT Hub AMQP 处理与游戏客户的通信。
不同类型的消息需要不同的生存时间,其中一些消息很短(5-20秒)。我开始注意到消息传递的一些随机问题,几乎立即抛出负面反馈。
经过痛苦的调查后,我发现原因是 WebAPI和IoT Hub时钟未对齐,所以到期时间更早或甚至立即触发。
现在,问题是 IoT Hub客户端不允许设置生存时间(Hub可以正确处理):相反,它会强制您指定ExpirationTime,与WebAPI时钟有关,而与IoT Hub无关。 我试图手动强制一些属性(" iothub-enqueuedtime")没有运气。
另一方面,我不能依赖于更改默认的IoT Hub到期设置,因为:
在排队新邮件时如何设置正确的生存时间或基于集线器的ExpirationTime?