SignalR集线器代理生成器的输出是否与动态生成的集线器代理文件基本相同?如果没有,有什么区别?
我的问题的一些背景:由于执行期间的依赖性问题,我正在努力使用命令行工具创建集线器代理,我认为获取动态生成的文件可能更容易。
答案 0 :(得分:6)
如前所述[{3}}关于使用带SignalR的集线器:
生成的代理及其为您做的
您可以对JavaScript客户端进行编程以与SignalR进行通信 使用或不使用SignalR为您生成的代理服务。什么 代理为您做的是简化您使用的代码的语法 连接,写入服务器调用的方法,以及调用方法 服务器
当您编写代码来调用服务器方法时,生成的代理 使您能够使用看起来就像执行一样的语法 本地函数:你可以编写serverMethod(arg1,arg2)而不是 invoke('serverMethod',arg1,arg2)。生成的代理语法也是 如果输入错误,可以立即解决客户端错误 服务器方法名称。如果您手动创建定义的文件 代理,您还可以获得IntelliSense支持编写代码 它调用服务器方法。
简而言之:
如果您输入错误的SignalR集线器或方法名称,这会使您的生活变得更容易。
使用代理:
var contosoChatHubProxy = $.connection.contosoChatHub;
contosoChatHubProxy.client.addContosoChatMessageToPage = function (name, message) {
console.log(name + ' ' + message);
};
没有代理:
var connection = $.hubConnection();
var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');
contosoChatHubProxy.on('addContosoChatMessageToPage', function(name, message) {
console.log(name + ' ' + message);
});
如果您需要生成代理文件一次而不是在运行时生成代理文件,您可以关注on this ASP.NET page,这允许您事先生成它(用于缓存或捆绑行为)。 / p>