Tag: 信号器

IIS后台线程和SignalR

我需要有一个后台线程来做一些工作,并通过SignalR将数据发送给连接到服务的用户。 我想在IIS中托管这个线程,并在首次命中Application_Start时或在单独的工作进程中生成它。 如果我在IIS中托管它并在应用程序的开头创建它 – 该线程仅在首次点击应用程序时启动。 我一开始服务就需要它运行。 – 我无法通过桌面GUI控制此线程,我无法以简单的方式停止或暂停它。 如果我在一个单独的进程(例如Windows服务)中托管它 – 我无法访问SignalR服务实例 – 我不希望以用户身份连接到SignalR服务以向其他用户发送数据。 我想采用一种不同的方法,这并不意味着工人是SignalR本身的客户。 你对此有何看法? 你还有其他解决方案吗?

SignalR Client是否在.NET Compact Framework上运行?

我没有找到有关SignalR支持的平台的任何文档,并且想知道SignalR Client是否在.NET Compact Framework上运行?

如何将SignalR添加到我的WCF服务和MVC 4客户端应用程序?

我正在使用WCF服务为ASp.net MVC 4客户端应用程序开发项目。 我在MVC中创建了一个控制器并在其中添加了一个视图。 而且,我通过ajax和jquery从视图传递数据。来自服务的响应,结果数据值存储在一个html元素中。就像我实现的那样。一部分已经完成。第二部分是 我有想法在WCF和MVC4服务中添加functionok SignalR? 我认为SignalR是一个自托管? 我如何在WCF和MVC4中为signalR创建一个api。我的代码是。 MVC控制器: – using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MVC4.Controllers { public class SampleController : Controller { public ActionResult Index() { return View(); } } } 视图:- @{ Layout = null; } Index $(document).ready(function () { var u = $(“.user”); var l […]

如何使用StructureMap v2.6解析signalR v2.0

在Global.asax的Application_Start中,我有以下内容 ObjectFactory.Initialize(cfg => { cfg.For().Singleton().Add (); }); 我的Hub接口是 public interface IDashboardHub { void Initialize(); } 我的中心如下: public class DashboardHub : Hub, IDashboardHub { private readonly ICpeAccountService _accountService; public DashboardHub(ICpeAccountService service) { _accountService = service; } [Authorize] public void Initialize() { Clients.All.UpdateStatus(“Hello World!!!”); } } 如果我删除注入的构造函数和解析器,那么我得到“Hello World”信号,JavaScript显示值。 如果我只是删除解析器,那么signalR不再找到无参数构造函数,并且不会调用Initialize方法。 如果我包含StructureMap依赖项解析器(它正在工作并立即注入大约40个其他类),那么我得到以下exception消息 StructureMap configuration failures: Error: 104 Source: Registry: […]

在unit testing中模拟SignalR Clients.Group的方法

我正在为SignalR应用程序编写模拟测试用例。 我刚开始在unit testingSignalR应用程序的帮助下,但我的要求与那里显示的示例略有不同。 以下是我在谷歌搜索后所做的代码。 SignalRHub public class HubServer : Hub { [HubMethodName(“SendNofication”)] public void GetNofication(string message) { try { Clients.Group(“Manager”).BroadCast(message); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } unit testing public interface IClientContract { } [TestMethod] public void GetNoficationTest() { var hub = new HubServer(); var mockClients = new Mock<IHubCallerConnectionContext>(); hub.Clients = mockClients.Object; var […]

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

SignalR集线器代理生成器的输出是否与动态生成的集线器代理文件基本相同? 如果没有,有什么区别? 关于我的问题的一些背景:由于执行期间的依赖性问题,我正在努力使用命令行工具创建集线器代理,我认为获取动态生成的文件可能是一种更简单的方法。

使用带有SignalR的Autofac时的范围错误

我正在尝试在SignalR中心注入一个HttpContextBase : public class EventHub : Hub, IDisconnect { private readonly HttpContextBase _httpContextBase; public EventHub(HttpContextBase httpContextBase) { _httpContextBase = httpContextBase; } […] } 注册码如下所示: private static void InitAutofac() { var builder = new ContainerBuilder(); var assembly = typeof (MvcApplication).Assembly; builder.RegisterControllers(assembly).PropertiesAutowired(); builder.RegisterModule(new AutofacWebTypesModule()); builder.RegisterFilterProvider(); builder.RegisterAssemblyTypes(assembly) .Where(InterfaceBasedInjectedClasses()) .AsImplementedInterfaces() .InstancePerLifetimeScope(); builder.RegisterAssemblyTypes(assembly) .Where(InterfaceLessInjectedClasses()) .InstancePerLifetimeScope(); builder.RegisterType().InstancePerLifetimeScope(); builder.RegisterType().InstancePerLifetimeScope(); var container = […]

在登录时存储用户然后按需按数据

所以我使用SignalR,它在我的网站上设置并正常工作。 假设用户A登录(我正在使用Membership API)。 当A登录时,我正在调用位于我的母版页中的.js的连接。 这将为此用户分配一个特定的userId。 假设现在用户B登录进行某些事件,该事件需要通过代码隐藏通知用户A. 所以我在这里要做的是通知用户B使用CodeBehind的A动作。 用户B如何知道用户A的ID以及整个工作如何运作? 我在文档中找不到帮助,因为它没有涉及到那种东西。 怎么能实现这一目标? 谢谢。

Azure Mobile Services Web Api上的SignalR CORS

我有一个运行Web Api和c#的Azure移动服务,并按照在Azure Mobile Serivce .NET后端启用CORS中的建议启用了CORS,但是现在我已经将SignalR添加到了混合中。 SignalR工作正常,但我看不到如何启用CORS。 目前在我的测试应用程序配置中我有以下内容: //enable CORS for WebAPI var cors = new EnableCorsAttribute(“*”, “*”, “*”); httpconfig.EnableCors(cors); //rather than use the static method new up SignalRExtensionConfig and pass the current config, hopefully allowing CORS… var signalRConfig = new SignalRExtensionConfig(); signalRConfig.Initialize(httpconfig, ioc); 但CORS不适用于SignalR集线器,它仅适用于WebAPI :(我感到沮丧: 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此不允许原点’null’访问。 我已经检查了响应头并且可以确认没有发送回任何内容。 任何人都可以建议吗?

更新到MVC5后找不到/ signalr / hubs 404

SignalR正在工作,而项目是ASP.NET MVC3。 现在我把它升级到MVC5(不是那么容易做,我必须告诉你)。 然后我注意到signalR没有工作。 我按照这本书,将SignalR重新安装到版本2.1.0,安装了OWIN(必须为v2 +)并为项目添加了启动类。 这是我的startup.cs类,它位于项目根文件夹中: [assembly: OwinStartup(typeof(SISTEM.Startup))] namespace SISTEM { public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } } 我觉得这里没问题,但也许我错过了一些东西…… 现在这里是来自集线器的片段: namespace SISTEM { public class PostingHub : Hub { public void Test(string hello) { Clients.All.hello(hello); } } } 然后我在视图中引用生成的代理: 我在fiddler中检查它,我可以看到/ signalr / hubs请求正在生成未找到的HTTP 404。 现在,我不是懒惰,我尝试了几件事: 修补无扩展URL的IIS – 因为我使用的是win8,所以不应该成为问题 […]