我编写了一个基本的信号器集线器,它接受来自客户端的呼叫,更新数据库,然后向所有客户端发出通知。
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秒!
我在通知中包含了服务器时间戳,因此我可以确认服务器响应速度足够快。这个问题大概是在交通工具的某个地方。
我是信号员的新手,所以我甚至不知道在哪里看。任何人都可以建议可能导致此行为的原因或我如何调试它?
答案 0 :(得分:6)
现在有一个关于缓冲和Azure网站的错误,请参阅http://github.com/SignalR/SignalR/issues/510。你现在可以通过使用longpolling来解决这个问题。我们正在努力解决这个问题。