我编写了一个基本的信号器集线器,它接受来自客户端的呼叫,更新数据库,然后向所有客户端发出通知。
public class ElementHub : Hub
{
public void RenameElement(Guid elementId, string elementName)
{
//save details of rename
//notify clients
Clients.elementRenamed(elementId, elementName, DateTime.Now);
}
}
这在我的开发机器上完美运行 - 所有更新都是即时的(足够接近) - 但是当我将它发布到 Windows Azure 网站时,我开始看到一些奇怪的行为。
发布后,通过集线器的第一个通知仍然几乎是即时的 - 可能会延迟几秒钟。但是第二次通知有时会延迟多达 30 秒!
我在通知中包含了服务器时间戳,因此我可以确认服务器响应速度足够快。问题可能出在运输的某个地方。
我是信号员的新手,所以我什至不知道在哪里看。谁能建议可能导致这种行为的原因或我如何调试它?