SignalR:生成的代理与动态创建的集线器文件

2023-12-25

SignalR 集线器代理生成器的输出与动态生成的集线器代理文件本质上相同吗?如果不是,有什么区别?

我的问题的一些背景:由于执行期间的依赖性问题,我正在努力使用命令行工具创建集线器代理,并且我确实认为获取动态生成的文件可能是一种更简单的方法。


就像声明的那样在此 ASP.NET 页面上 https://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client关于将集线器与 SignalR 结合使用:

生成的代理及其为您做什么

您可以编写 JavaScript 客户端来与 SignalR 进行通信 使用或不使用 SignalR 为您生成的代理的服务。什么 代理为你做的是简化语法您使用的代码 连接,编写服务器调用的方法,并调用服务器上的方法 服务器。

当您编写代码来调用服务器方法时,生成的代理 使您能够使用看起来好像正在执行的语法 本地函数:您可以编写 serverMethod(arg1, arg2) 而不是 调用('serverMethod',arg1,arg2)。生成的代理语法也如果您输入错误,会立即出现且可理解的客户端错误 服务器方法名称。如果您手动创建定义的文件 代理,您还可以获得编写代码的 IntelliSense 支持 调用服务器方法。

长话短说:

如果您输入错误的 SignalR 集线器或方法名称,这将使您的生活更轻松,避免真正的 JS 错误。

With proxy:

var contosoChatHubProxy = $.connection.contosoChatHub;
contosoChatHubProxy.client.addContosoChatMessageToPage = function (name, message) {
    console.log(name + ' ' + message);
};

Without proxy:

var connection = $.hubConnection();
var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');
contosoChatHubProxy.on('addContosoChatMessageToPage', function(name, message) {
    console.log(name + ' ' + message);
});

如果你需要生成代理文件一次而不是在运行时生成它,您可以按照本节 https://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#manualproxy,它允许您预先生成它(用于缓存或捆绑行为)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SignalR:生成的代理与动态创建的集线器文件 的相关文章

随机推荐