首页 > 其他分享 >SignalR 客户端源生成器 客户端强类型方法

SignalR 客户端源生成器 客户端强类型方法

时间:2023-08-18 10:24:41浏览次数:40  
标签:Task 生成器 SignalR connection public 客户端

 

SignalR 客户端源生成器根据您定义的接口生成强类型的发送和接收代码。您可以在客户端上重用来自强类型 SignalR 集线器的相同接口来代替松散类型的 .On("methodName", ...) 方法。同样,您的集线器可以为其方法实现一个接口,并且客户端可以使用该相同接口来调用集线器方法。

要使用 SignalR 客户端源生成器:

[AttributeUsage(AttributeTargets.Method)]
internal class HubServerProxyAttribute : Attribute
{
}

[AttributeUsage(AttributeTargets.Method)]
internal class HubClientProxyAttribute : Attribute
{
}
  • 为您的项目添加一个静态分部类,并使用 [HubClientProxy] 和 [HubServerProxy] 属性编写静态分部方法
internal static partial class MyCustomExtensions
{
    [HubClientProxy]
    public static partial IDisposable ClientRegistration<T>(this HubConnection connection, T provider);

    [HubServerProxy]
    public static partial T ServerProxy<T>(this HubConnection connection);
}
  • 使用代码中的部分方法!
public interface IServerHub
{
    Task SendMessage(string message);
    Task<int> Echo(int i);
}

public interface IClient
{
    Task ReceiveMessage(string message);
}

public class Client : IClient
{
    // Equivalent to HubConnection.On("ReceiveMessage", (message) => {});
    Task ReceiveMessage(string message)
    {
        return Task.CompletedTask;
    }
}

HubConnection connection = new HubConnectionBuilder().WithUrl("...").Build();
var stronglyTypedConnection = connection.ServerProxy<IServerHub>();
var registrations = connection.ClientRegistration<IClient>(new Client());

await stronglyTypedConnection.SendMessage("Hello world");
var echo = await stronglyTypedConnection.Echo(10);
 

 

标签:Task,生成器,SignalR,connection,public,客户端
From: https://www.cnblogs.com/webenh/p/17639693.html

相关文章

  • [Lua] IT技术熟练度生成器 | 根据活动记录生成md表格 | 自创
    IT技术熟练度v1.0为衡量个人能力水平自创的一套评分机制,根据时间、代码行数、基础理论三个变量生成。最近在学lua,正好练下基本功。效果可见个人介绍|代码统计-小能日记-博客园(cnblogs.com)life.lua记录自己每日的IT活动,main.lua程序根据life.lua生成文件output.md......
  • 服务端不回应客户端的syn握手,连接建立失败原因排查
    背景测试环境有一个后台服务,部署在内网服务器A上(无外网地址),给app提供接口。app访问这个后台服务时,ip地址是公网地址,那这个请求是如何到达我们的内网服务器A呢,这块我咨询了网络同事,我画了简图如下:请求会直接打到防火墙上,防火墙对请求先做了DNAT转换(将目的地址转换为后台服务器的......
  • mybatisPlus 代码生成器
    代码生成器旧版-3.5.1版本之前publicclassCodeGeneration{ publicstaticvoidmain(String[]args){ CodeGenerationcodeGeneration=newCodeGeneration(); codeGeneration.execute(); } publicvoidexecute(){ AutoGeneratormpg=newAutoGenerator();......
  • JFrog CLI 客户端的使用
    概述JFrogCLI是一个智能的命令行客户端工具,它提供了一个简单的交互界面,可以自动访问JFrog仓库,简化指令脚本,便于操作维护,使用更加高效和可靠。官方介绍https://jfrog.com/help/r/jfrog-cli/about-jfrog-cli系统平台CentOSLinux7下载工具官方下载链接: https://jfrog.com/getcli......
  • 模拟修改客户端访问服务器时的IP方法
    产品需求有时候需要区分白名单城市和非白名单城市,例如:北上广深访问页面A,返回一套数据B,其他城市访问页面A,返回另一套数据C。这时候我们就需要通过一定的方法才能测试覆盖到这个场景。两个方法:1、使用第三方网络代理,代理到其他城市的网络环境(这里就不细说了,缺点就是网速不稳定,可......
  • MSP 客户端打开指定外部程序
    functionshowMedi(){if(typeofwindow.cefSharpExample!="undefined"){varpath="D:\\WebApp.exe",window.cefSharpExample.showExe(path)}else{alert("可能无权限,请用客户端程序操作!");}}......
  • EAS_客户端设置按钮和菜单栏操作选项隐藏
    我们要想隐藏客户端的按钮或者菜单,防止操作,可以在listUI或者EditUI中onload()方法中使用下列方式来设置控件是否显示和是否可用,控件名可通过dep查看或者通过shift+alt+d来查看控件publicvoidonload(){//禁用按钮this.btnSave.setVisible(false);......
  • 【程序员高阶工具】idea自带的http客户端插件使用
    idea自带的http客户端插件使用一.前言http客户端的工具还是很多的,如postman,jmeter,apifox等。其中jmeter只支持本地,如果多成员间需要协作,需要进行文件传输,较为繁琐。postman和apifox,更方便进行用户间共享,但是这些工具的使用,需要打开第三方软件,从研发人员的角度不是很简便。目......
  • 安卓微信对话生成器
     软件一共提供了5款,优先下载第一款,如果提示闪退或蓝屏,就下载其他版本软件①——点击下面链接:软件【微商工具2.1.9】点击进入下载页面链接:https://pan.baidu.com/s/1nU73wwfh4Jy1k1ZB_rIFBA提取码:jw1x注意:请使用手机号登录,不要更新软件,登录后会有操作提示,按提示操作就可以......
  • TCP客户端开发
    什么是客户端&服务端?1.TCP网络应用程序开发分为客户端程序开发和服务端程序开发。2.主动发起建立连接请求的是客户端程序3.等待接受连接请求的是服务端程序 TCP客户端开发流程 TCP客户端与服务端启动、交换过程:TCP客户端开发步骤:1.创建客户端套接字对象(买电话)......