在 SignalR 中声明对集线器代理的引用

Declaring a reference to hub proxy in SignalR

我想知道...

以下代码声明对集线器代理的引用。

var chat = $.connection.chatHub;

还有下面的代码:

var connection=$.hubConnection();
var hub=connection.createHubProxy("chatHub");
  1. 那么这两种申报方式有什么区别呢?
  2. 何时使用哪一个?

So what is the difference between the two tpyes of declaration?

区别在于一个代码使用 SignalR 生成的代理,另一个不使用。

您生成的代理代码默认为 http://yourapplicationURL/signalr/hubs。您可以在那里阅读生成的代理代码。

您可以在此处阅读更多相关信息:http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#establishconnection

网站上的例子: 使用生成的代理:

var contosoChatHubProxy = $.connection.contosoChatHub;

没有生成的代理:

var connection = $.hubConnection();
var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');

(此代码实际上包含在生成的代理中,作为引用集线器的快捷方式)

Which one to be used and when?

您可以选择不生成代理代码。在那种情况下,只有第二种选择可行。在其他情况下,他们执行相同的代码,第一个选项更优雅。就看你的选择了。