Tag: signalr

在signalr中向特定用户发送消息

我有一个signalR服务器(控制台应用程序)和一个客户端应用程序(Asp.net MVC5) 如何在OAuth成员资格中向特定用户发送消息。 实际上我无法从中心请求上下文中解析发件人用户。 Context.User.Identity.Name 我的中心 public class UserHub : Hub { #region Hub Methods public void LoggedIn(string userName, string uniqueId, string ip) { Clients.All.userLoggedIn(userName, uniqueId, ip); } public void LoggedOut(string userName, string uniqueId, string ip) { var t = ClaimsPrincipal.Current.Identity.Name; Clients.All.userLoggedOut(userName, uniqueId, ip); } public void SendMessage(string sendFromId, string userId, string sendFromName, string userName, […]

SignalR .Net客户端:如何向组发送消息?

我正在使用SignalR Wiki Getting Started Hubs页面中的示例聊天应用程序。 我已经扩展它以添加组支持,它工作正常。 但是,现在我想从外部控制台应用程序向组发送消息。 这是我的控制台应用程序的代码,下面是我的代码组。 如何从代理向组发送消息? 可能吗? // Console App using System; using Microsoft.AspNet.SignalR.Client.Hubs; namespace SignalrNetClient { class Program { static void Main(string[] args) { // Connect to the service var connection = new HubConnection(“http://localhost:50116”); var chatHub = connection.CreateHubProxy(“Chat”); // Print the message when it comes in connection.Received += data => Console.WriteLine(data); […]

signalR中的第一条任意消息没有messageID?

我写了这个简单的代码 – 当连接时,应该屈服 “第一个!” “欢迎” 3条消息(定时器) 这是代码: int i = 0; protected override Task OnConnected(IRequest request, string connectionId) { //first message Connection.Send(connectionId, “FIRST !”); //first message //last messages Timer _timer = new Timer(RunMe, new {con = connectionId, req = request}, 2000, 1000); //second message return Connection.Send(connectionId, “Welcome!”); //second message } void RunMe(dynamic state) { if […]

SignalR聊天应用程序发送图像

我从教程中构建了SingnalR聊天应用程序MVC5 signalR 2.0: – http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-getting-started- with-signalr-20-and-mvc-5虽然有办法发送图像/附件,但它的工作都非常出色吗? 和实际显示在屏幕上的图像?

Windows 10 Home / Pro / Enterprise上的IIS并发请求限制

我用SignalR(WebSockets)开发了一个ASP.Net Web应用程序。 我在Windows 10 Home Machine上的IIS上安装了它。 由于SignalR使用服务器和客户端之间的持久连接,因此我遇到的问题是此设置只能处理3个连接。 Windows 10 Pro或Windows 10 Enterprise上IIS 8.5的并发连接限制是多少? 是否还有其他选项可以在家中托管此应用程序,而无需安装Windows Server?

SignalR 2.0.2创建PersistentConnection

我使用包管理器控制台将SignalR 2.0.2安装到我的MVC 4.5应用程序中。 我做了连接配置的标准示例。 namespace SignalRPersistent { public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(“/echo”); } } } 问题是MapSignalR方法不接受字符串,而编译错误则说明了这一点 参数类型字符串不能分配给参数类型SignalRHubConfiguration。 但我可以看到一个接受字符串的重载方法,但它坚持不编译。 有什么问题?

在SignalR中Hub.Context线程安全吗?

如果同时从不同客户端发生多个请求,则Hub.Context.ConnectionId的值在执行处理程序期间发生更改。 假设我有2个客户端与客户端ID A和B连接,我在我的Hub上有一个名为foo()的方法。 我从A向服务器发送请求调用foo(),然后在处理来自A的请求时,我从B调用foo()发送请求。 在处理A的请求开始时Hub.Context.ConnectionId == A但在方法结束时调用Hub.Context.ConnectionId == B. 我应该复制Hub.Context吗? 我应该在什么时候这样做?

如何使AutoFac对每个顶级对象使用相同的嵌套依赖实例? (每个集线器的SignalRdependency injection)

我试图以这种测试通过的方式设置我的AutoFac注册: [Test] public void Autofac_registration_test() { // Given var builder = new ContainerBuilder(); RegisterServices(builder); var container = builder.Build(); // When var firstHub = container.Resolve(); var secondHub = container.Resolve(); // Then firstHub.Should().NotBe(secondHub); firstHub.FooRepo.Context.Should().Be(firstHub.BarRepo.Context); firstHub.FooRepo.Context.Should().NotBe(secondHub.FooRepo.Context); } 即我想在单个Hub一直使用相同的Context对象,但在创建新Hub时使用不同的Context对象。 RegisterServices目前只是: private void RegisterServices(ContainerBuilder builder) { builder.RegisterType(); builder.RegisterType(); builder.RegisterType(); builder.RegisterType(); // How should I scope this? } 哪个在firstHub.FooRepo.Context.Should().Be(firstHub.BarRepo.Context);失败了firstHub.FooRepo.Context.Should().Be(firstHub.BarRepo.Context); 因为Context是临时范围的。 但是每个生命周期的范围上下文也会失败,这次是在firstHub.FooRepo.Context.Should().NotBe(secondHub.FooRepo.Context); […]

SignalR自托管Windows服务,监听消息

我正在尝试构建一个自托管SignalR的Windows服务。 我已经阅读了ASP.Net上的SignalR Self-Host等教程 我注意到,至少它似乎是基于广播信息,并且似乎无法找到任何有关聆听的内容。 我需要收听服务中的消息以及广播。 我们已经有了背板设置 – 它与网站使用的设置相同。 在网站上,我可以通过Javascript加入群组。 如何在自托管SignalR服务中加入组。 在网站中,我在集线器上注册回调。 如何在自托管服务中注册相同的回调? 我有一些示例代码,用于注册和启动SignalR是: GlobalHost.DependencyResolver.UseSqlServer(Settings.Default.ISDBContext); app.Map(“/signalr”, map => { map.UseCors(CorsOptions.AllowAll); HubConfiguration hubConfig = new HubConfiguration() { EnableDetailedErrors = true, EnableJSONP = true, }; map.RunSignalR(hubConfig); }); 然后我像这样启动我的webApp: SignalR = WebApp.Start(options); 选项是我正在注册的url。 Startup是包含上面signalR映射的启动类。 由于我之前没有建立自助托管服务,所以很少丢失

当SignalR一次建立8-10个连接时,实时聊天不起作用

我正在使用SignalR开发实时聊天。 这是很棒的图书馆。 但我应对了一个我无法解决的问题。 因此,当signalR一次进行8-10个连接时,实时聊天不再起作用。 也许是b / ci在本地机器上运行一切? 我想也许我在某个地方犯了错误。 所以我找到了最简单的聊天。 你可以在这里下载。 我在10个窗口打开它,它不再工作了。 signalR或程序员的性能问题是错误的吗? 我怎样才能让它更快地运作? 我也找到了JabbR聊天 。 它有现场演示 ,适用于很多人。 他们没有做任何特别的事情,它的工作量很大。 有人可以帮忙解决这个问题吗? 非常感谢任何帮助,迪马。