我有一个独特的情况.我开发了一个MVC 4网站和.NET客户端,它连接到托管SignalR集线器的站点.hubConnection对象成功连接到集线器.但是,如果我调用hubProxy.Invoke("Test"),创建的hubProxy对象根本不返回.Wait(); 我的中心只是回归了一个真实的bool;
有趣的是,当我通过VS和IIS express在本地运行网站和.net客户端时,一切正常.当我在完整的2008R2 IIS 7.5服务器和笔记本电脑上的.net客户端上运行网站时,它会失败.或者更恰当的是,线程只是停在HubProxy.Invoke("Test").Wait()并且永远不会返回(它只是继续运行).
更有趣的部分是当我开始运行Fiddler以查看正在发生的事情或者如果调用通过Web服务器时,问题就会自行解决并且一切正常.
似乎不知何故fiddler充当我的.net客户端的代理使hubProxy.Invoke()工作.如果我需要代理,我会认为我的HubConnection对象会失败?能够成功连接到集线器连接只是为了意识到线程似乎永远运行试图调用集线器代理上的函数,这有点误导?
任何人都可以澄清这种行为吗?关于在.net客户端正确创建HubConnection/Proxy以调用服务器上的方法需要做些什么的建议?
另外,这可能相关也可能不相关.我注意到,如果我将我的网站托管为:
http {s} // mywebsiteserver/mywebsite"并且我可以通过网络浏览器浏览,那么它将无法用作信号器连接字符串.我必须使用完全限定的http {s}的DNS名称// mywebsiteserver.mydomainname.xyz/mywebsite
有什么建议?
谢谢!麦克风
如果我有一个 signalR 集线器,它向所有具有相当大的有效载荷或私人信息的客户端发送消息,那么所有连接到集线器(同一组的一部分)的客户端都会收到消息,即使它们没有订阅这些事件客户端?
想知道客户端是否足够聪明,可以协商它对服务器的哪些事件,以便服务器不会发送无关数据?
谢谢!