3

我编写了一个基本的信号器集线器,它接受来自客户端的呼叫,更新数据库,然后向所有客户端发出通知。

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 秒!

我在通知中包含了服务器时间戳,因此我可以确认服务器响应速度足够快。问题可能出在运输的某个地方。

我是信号员的新手,所以我什至不知道在哪里看。谁能建议可能导致这种行为的原因或我如何调试它?

4

1 回答 1

6

缓冲和 Azure 网站现在存在一个错误,请参阅http://github.com/SignalR/SignalR/issues/510。您现在可以通过使用 longpolling 来解决这个问题。与此同时,我们正在努力解决这个问题。

于 2012-08-03T23:44:00.587 回答