热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#学习教程:SignalR:使用GlobalHost.ConnectionManager发送数据不起作用分享

SignalR:使用GlobalHost.ConnectionManager发送数据不起作用我有这样一个集线器:publicclassMessageHubBub:Hub{publi

SignalR:使用GlobalHost.ConnectionManager发送数据不起作用

我有这样一个集线器:

public class MessageHubBub : Hub { public void ServerMethod() { Clients.All.sayHi("hello"); GlobalHost.ConnectionManager.GetHubContext().Clients.All.sayHi( "Hello" ); } } 

我的(相关)Javascript看起来像这样:

  $.connection.MessageHubBub.client.sayHi = function (message) { console.log("Hello"); }; $.connection.hub.start().done(function () { $.connection.MessageHubBub.server.ServerMethod(); }); 

真正奇怪的是“Hello”只打印一次,我希望它打印两次(因为’sayHello’被调用两次)。 一般来说,我使用从GlobalHost.ConnectionMananager获取的’clients’对象向客户端发送消息时遇到了麻烦,因此我将这个问题提炼出来以显示什么不起作用。

我已经看过很多post,人们遇到的问题包括在启动集线器之前没有使用客户端注册js处理程序或者没有引入正确的js依赖项,但这些似乎不是我的问题。 我有什么理由不能使用GlobalHost.ConnectionManager.GetHubContext()向客户端发送消息。客户端?

编辑:为了回应Lars,我确实有一个自定义依赖项解析器,以便我可以将Unity集成到SignalR中。 我按照我在这里找到的一个例子: http : //www.kevgriffin.com/using-unity-for-dependency-injection-with-signalr/

我唯一的配置是如下:

 RouteTable.Routes.MapHubs( new HubConfiguration() { Resolver = new SignalRUnityDependencyResolver( unityContainer ) } ); 

SignalRUnityDependencyResolver如下所示:

 public class SignalRUnityDependencyResolver : DefaultDependencyResolver { private IUnityContainer _container; public SignalRUnityDependencyResolver( IUnityContainer container ) { _cOntainer= container; } public override object GetService( Type serviceType ) { if ( _container.IsRegistered( serviceType ) ) return _container.Resolve( serviceType ); else return base.GetService( serviceType ); } public override IEnumerable GetServices( Type serviceType ) { if ( _container.IsRegistered( serviceType ) ) return _container.ResolveAll( serviceType ); else return base.GetServices( serviceType ); } } 

使用自定义依赖项解析程序时,仅将其传递给HubConfiguration是不够的。

您需要将解析器实例存储在某处并像这样使用它来访问连接管理器和您的集线器上下文:

 MyDependencyResolver.Resolve().GetHubContext(); 

或者将GlobalHost中的默认依赖项解析器设置为您的实例:

 var myResolver = new SignalRUnityDependencyResolver(unityContainer); RouteTable.Routes.MapHubs( new HubConfiguration() { Resolver = myResolver } ); GlobalHost.DependencyResolver = myResolver; 

(然后你可以使用默认的GlobalHost.ConnectionManager.GetHubContext()

上述就是C#学习教程:SignalR:使用GlobalHost.ConnectionManager发送数据不起作用分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
author-avatar
惜泽2502852447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有