当前位置: 首页 > news >正文

帝国cms 网站迁移错版河南省和城乡建设厅网站首页

帝国cms 网站迁移错版,河南省和城乡建设厅网站首页,一家只做正品的网站,广东vs北控直播一、什么是集线器hubs通过SignalR的集线器hubs中定义的方法#xff0c;服务器可以调用连接中的客户端定义的方法#xff0c;而客户端也可以调用服务器端集线器中定义的方法。SignalR负责实现了客户端和服务器之间的实时通信。二、配置SignalR的hubsSignalR通过在Startup.Conf… 一、什么是集线器hubs  通过SignalR的集线器hubs中定义的方法服务器可以调用连接中的客户端定义的方法而客户端也可以调用服务器端集线器中定义的方法。SignalR负责实现了客户端和服务器之间的实时通信。二、配置SignalR的hubs  SignalR通过在Startup.ConfigureServices中调用services.AddSignalR()来配置中间件服务。  将 SignalR 功能添加到 ASP.NET Core 应用程序时通过在Startup.Configure方法中调用app.UseSignalR来设置 SignalR 路由。app.UseSignalR(routes {  routes.MapHubBaseHub(/Hub);}); 三、创建集线器Hubs  通过继承Hub类来创建集线器类并添加public修饰的方法。可以通过特性[HubMethodName]来修改方法的名称。public async Task SendMessage(string user,string message){await Clients.All.SendAsync(ReceiveMessage, user, message);}  注意   客户端只能调用集线器类中定义的public的方法。每次客户端访问服务器的集线器类的时候都是在新的对象实例上运行的所以不能将状态存储在集线器类中。SignalR的代码是异步模式的所以集线器中的方法也都是异步的。四、参数和返回类型  将集线器类和客户端接收代码改为如下所示public class paramsEntity{public string user { get; set; }public string message { get; set; }}public async Task SendMessage(paramsEntity param){await Clients.All.SendAsync(ReceiveMessage, param);}//接收服务器端消息ReceiveMessage的处理程序connection.on(ReceiveMessage, function (param) {  if (param.user)    $(#content).append(param.user :);  if (param.message)    $(#content).append(param.message :);});//发送消息至服务器端SendMessage方法connection.invoke(SendMessage, { user, message }).catch(function (err) {  return console.error(err.toString());});  通过运行可以发现SignalR会通过序列化和反序列化来处理复杂的参数和返回类型。如果客户端传递的参数和服务器端不一致会导致方法无法被匹配到而报错以下错误。Microsoft.AspNetCore.SignalR.HubException: Failed to invoke SendMessage due to an error on the server.  所以使用自定义对象作为参数更加的灵活多变。五、Hub的对象  1、Context  Hub类具有一个上下文Context包含连接中的以下属性以及方法。属性描述ConnectionId获取由 SignalR 分配的连接的唯一 ID。每个连接都有一个连接 IDUserIdentifier获取用户标识符。 默认情况下SignalR 使用ClaimTypes.NameIdentifier与连接ClaimsPrincipal关联的作为用户标识符。User获取与ClaimsPrincipal当前用户关联的。Items获取可用于在此连接的范围内共享数据的键/值集合。数据可以存储在此集合中它将在不同的集线器方法调用中持久保存。Features获取连接上的可用功能的集合。目前在大多数情况下不需要此集合因此不会对其进行详细介绍。ConnectionAborted获取一个CancellationToken它将在连接中止时通知。方法描述GetHttpContext返回连接HttpContext的null如果连接不与 HTTP 请求关联则为。对于 HTTP 连接可以使用此方法来获取 HTTP 标头和查询字符串等信息。Abort中止连接。2、Clients  Hub类的Clients属性包含服务器和客户端之间通信的方法和属性。属性描述All在所有连接的客户端上调用方法Caller在调用集线器方法的客户端上调用方法Others在所有连接的客户端上调用方法但调用方法的客户端除外方法描述AllExcept在所有连接的客户端指定的连接除外上调用方法Client在特定连接的客户端上调用方法Clients在多个特定连接的客户端上调用方法Group对指定组中的所有连接调用方法GroupExcept对指定组中的所有连接调用方法指定的连接除外 Groups在多组连接上调用方法OthersInGroup对一组连接调用方法而不包括调用该集线器方法的客户端User对与特定用户关联的所有连接调用方法Users对与指定用户相关联的所有连接调用方法  表中的每个属性或方法都返回一个SendAsync包含方法的对象。 SendAsync方法允许你提供要调用的客户端方法的名称和参数。六、强类型的hub  使用SendAsync的时候需要传入字符串来指定调用客户端的方法这就会导致拼写错误等问题引发程序运行错误。  通过使用强类型HubT将客户端的方法约定为接口这样Hub的Clients的将会禁用Sendasync方法而只能调用我们约定的接口方法。 public interface IHub { Task ReceiveMessage(string user, string message); Task ReceiveMessage(string message); } public class BaseHub : HubIHub {public async Task SendMessage(string user, string message) {await Clients.All.ReceiveMessage(user, message); } } 七、处理连接事件  SignalR的hub提供OnConnectedAsync和OnDisconnectedAsync虚拟方法来管理和跟踪连接。 重写OnConnectedAsync虚拟方法以便在客户端连接到集线器时执行操作如将其添加到组。public override async Task OnConnectedAsync(){await Groups.AddToGroupAsync(Context.ConnectionId, SignalR Users);await base.OnConnectedAsync();}  重写OnDisconnectedAsync虚拟方法以便在客户端断开连接时执行操作。 如果客户端故意断开连接例如connection.stop()通过调用则exception参数将为null。 但是如果客户端由于错误例如网络故障而断开连接则exception参数将包含描述失败的异常。public override async Task OnDisconnectedAsync(Exception exception){await Groups.RemoveFromGroupAsync(Context.ConnectionId, SignalR Users);await base.OnDisconnectedAsync(exception);}原文链接https://www.cnblogs.com/xwc1996/p/11530341.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.zqtcl.cn/news/495495/

相关文章:

  • 网站建设服务费是否无形资产百度一下你就知道官网下载安装
  • 网站付款链接怎么做在线设计商标logo
  • 阿里巴巴做网站多少钱特大新闻凌晨刚刚发生
  • 网站如何做se设计师网站pintset
  • 上海网站制作机构wordpress 优酷免广告
  • 关于网站建设的名言网站开发的技术难点
  • 免费云建站廊坊seo外包
  • 个人网站建设方案书用备案的衡水市网站制作
  • 教育网站的建设品牌营销型网站作用
  • 金凤区建设交通局网站做洗衣液的企业网站
  • 南阳网站优化手机咋做网站
  • 做网站多少钱一年没有网站做cpa怎么赚钱
  • 二手房发布网站怎么做建站哪家好用兴田德润
  • 网站开发有几种深圳网站制作长沙
  • 为什么一个网站外链那么多公司团建活动
  • 公司门户网站建设策划书wordpress清空数据
  • 大兴专注高端网站建设交互设计留学
  • 想要黑掉一个网站 要怎么做网页设计师培训机构有吗
  • 做网站网站应该注意什么关于建设网站的会议纪要
  • 什么网站建设最简单做毕业设计实物的网站
  • 正规网站开发文案电商网站与企业网站区别
  • 襄阳做网站比较有实力的公司长沙出名的网站设计推广
  • 徐州网站设计师最便宜的购物平台
  • 网站域名和空间费用wordpress是是什么技术
  • 企业制作网站一般多少钱上海网站制作费用
  • 苏州住建网站什么叫关键词
  • 电商网站开发过程是什么推广整合营销
  • 网页建站软件网络市场调研的步骤
  • 自己做的网站怎样赚钱长沙专业做网站排名
  • 张家界做网站公司国内最先做弹幕的网站