标签: signalr

SignalR具有不可靠或暂停和重新连接的连接?

我正在考虑更新现有网站以使用SignalR.我的站点轮询第三方服务以进行数据更改,对其进行一些魔术,并且客户端每隔几分钟轮询一次以使用任何更新刷新其视图.

SignalR似乎是消除客户端轮询的好方法,但我想知道SignalR如何处理丢弃和重新连接的连接,特别是关于可能已暂停一段时间的移动网络应用程序.它会自动协商并排队在此期间遗漏的任何更新,还是客户端需要在这些情况下从头开始重新同步?我看了,但找不到任何关于此的文档,所以指导将不胜感激.

signalr

11
推荐指数
1
解决办法
2643
查看次数

使用Signalr拥有类似facebook的通知系统

我想在ASP.NET MVC 3中实现类似facebook的通知系统:将通知发送给特定用户以通知他对其中一个项目的操作.

信号灯适合这种要求吗?如何使用SignalR向特定用户(此用户的所有已打开会话)发送通知?

编辑

好的,这就是我做的

在客户端

$(function () {
// Proxy created on the fly
var chat = $.connection.chat;
var username = '@Html.ViewContext.HttpContext.User.Identity.Name';
// Declare a function on the chat hub so the server can invoke it
chat.addMessage = function (message) {
     $('#messages').append('<li>' + message + '</li>');
};
// Start the connection
$.connection.hub.start(function (){
    chat.join(username);
});

});
Run Code Online (Sandbox Code Playgroud)

在服务器端

public class Chat : Hub
{
    public void Join(string username)
    {
        AddToGroup(username);
    }
}
Run Code Online (Sandbox Code Playgroud)

每次我需要通知控制器中的用户时,我会执行以下操作:

IConnectionManager connectionManager = AspNetHost.DependencyResolver.Resolve<IConnectionManager>();
dynamic clients …
Run Code Online (Sandbox Code Playgroud)

asp.net push-notification asp.net-mvc-3 signalr

11
推荐指数
1
解决办法
8032
查看次数

SignalR typescripf声明文件

我已经开始使用typescript,很容易找到angular.js和jquery的声明(d.ts)文件.但是找不到SignalR jquery.

你们能帮助我吗?我可以创建一个界面,extends JQuery但不知怎的,它不起作用......

var hub = $.connection.myHub
Run Code Online (Sandbox Code Playgroud)

它抱怨的connection事情...说"属性'连接'不存在于'JQueryStatic'类型的值"

signalr typescript

11
推荐指数
2
解决办法
8853
查看次数

owin启动类visual studio 2012出错

我是新来的信号r,我正在尝试在c#visual studio 2012中创建一个基本的聊天应用程序,但我收到了以下错误.

The following errors occurred while attempting to load the app.
- No assembly found containing an OwinStartupAttribute.
- The discovered startup type 'SignalRTutorials.Startup, SignalRTutorials, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 
    conflicts with the type 'Microsoft.VisualStudio.Web.PageInspector.Runtime.Startup, Microsoft.VisualStudio.Web.PageInspector.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 
 Remove or rename one of the types, or reference the desired type directly. 
 To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config. 
 To specify the OWIN startup Assembly, Class, or Method, add the …
Run Code Online (Sandbox Code Playgroud)

c# signalr owin

11
推荐指数
2
解决办法
2万
查看次数

Visual Studio的浏览器链接功能是否能够使用Web套接字?

我知道SignalR用于使用注入的动脉脚本与客户端浏览器进行通信.我有一个似乎常见的问题,那就是我的浏览器的网络日志中填充了如下所示的条目:

.../arterySignalR /民意调查?运输= longPolling&connectionToken = ...

这告诉我SignalR已经回归到长轮询,而不是使用网络套接字.假设我们有一个支持Web套接字的浏览器,并且该浏览器在localhost上运行,那么SignalR默认不应该使用Web套接字吗?什么可能导致它回归长期民意调查?

long-polling websocket signalr browser-link

11
推荐指数
1
解决办法
1875
查看次数

SignalR 2.0 .NET控制台客户端

我有我的服务器控制台应用:

    static void Main(string[] args)
    {
        string url = "http://localhost:8080";
        using (WebApp.Start(url))
        {
            MyHub hub = new MyHub();
            Console.WriteLine("Server running on {0}", url);
            var key = Console.ReadLine();
            while (key != "quit")
            {
                hub.Send("Server", key);
            }
        }
    }

public class MyHub : Hub
{
    public void Send(string name, string message)
    {
        var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
        context.Clients.All.addMessage(name, message);
    }
}
public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.UseCors(CorsOptions.AllowAll);
        app.MapSignalR();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的.NET客户端应用程序

    static void Main(string[] args)
    {

        MainAsync().Wait();
        Console.ReadLine();
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net signalr signalr.client

11
推荐指数
1
解决办法
2万
查看次数

带SignalR的WCF服务

我有一个Web应用程序,它在仪表板上有很少的图表.图表的数据在客户端的document.ready函数上获取,调用WCF服务方法.

我想要的是现在在我的应用程序中使用SignalR.我是SignalR的新手.我如何从SignalR Hub调用WCF方法,或者你可以说是不是从服务器提取数据而是希望WCF服务每隔一分钟将数据推送到客户端.

signalR和WCF服务之间是否存在通信方式.

另一种方法可以是强制客户端每分钟从WCF服务请求数据.

任何帮助将非常感激.

我已经做了以下的事情.

我的仪表板页面上的客户端功能

<script src="Scripts/jquery.signalR-2.0.3.min.js"></script>
    <!--Reference the autogenerated SignalR hub script. -->
    <script src="/signalr/hubs"></script>
<a id="refresh">Refresh</a>
    $(function() {
            var dashboardHubProxy = $.connection.dashboardHub;
            $.connection.hub.start().done(function() {
                // dashboardHubProxy.server.refreshClient(parameters);
                $("#refresh").click(function() {
                    dashboardHubProxy.server.refreshClient(parameters);
                });
            });
            dashboardHubProxy.client.refreshChart = function (chartData) {
                debugger;
                DrawChart(chartData, 'Hourly Call Count For Last ' + Duration + ' Days', '#chartHourly', 'StackedAreaChart');
            };
        });
Run Code Online (Sandbox Code Playgroud)

我的Dashboard Hub类如下

public class DashboardHub : Hub
{
    private readonly ReportService ReportService = new ReportService();


    public void RefreshClient(string parameters)
    {
        var chartData …
Run Code Online (Sandbox Code Playgroud)

asp.net wcf signalr

11
推荐指数
2
解决办法
2万
查看次数

服务器到Phonegap推送:SignalR与Azure通知中心

好吧,我继续使用我的Phonegap应用程序开发处于两难境地:对于实时事件通知,我应该使用Azure Notification Hub还是SignalR?

据我了解,SignalR通过使用Web套接字适用于实时Web应用程序.而通知中心可以轻松地跨多个平台发送推送通知.为了便于回复,让我解释一下我目前拥有的结构以及我的应用程序应该做什么.

应用程序:它基本上是一个用户可以创建组并邀请其他用户的应用程序.用户还可以使组"在线",以便其他用户可以"输入"该组.当该群组在线且用户已进入时,他们可以发送问题,交换消息等.

需求:当用户在组中提问或进入/离开组时,其他用户需要在应用屏幕中看到新用户.我可以在服务器上进行轮询以检查并根据更新UI,但这是现代人不允许的.我对这个主题的搜索引出了两件事:SignalR和NotificationHub.

当前架构:客户端 - >带有backbone.js的PhoneGap应用程序.后端 - >带有实体框架和Azure Sql Server的Asp.NET Web API.

我已经考虑过使用通知集线器和标签了.例如,当用户进入在线组时,它向服务器发送请求以注册"grouplisten:{groupId}"标签.然后,服务器将标记注册到用户的设备,并向标记为"grouplisten:{groupId}"的所有其他设备发出通知,以便其他用户使用最近加入的用户更新UI.此外,当用户离开组时,它向服务器发送请求以删除"grouplisten:{groupId}"标签,并且还通知具有"grouplisten:{groupId}"的设备.但是通过这个简单的例子,看起来这样会变得无法管理.

real-time push-notification signalr asp.net-web-api cordova

11
推荐指数
1
解决办法
5637
查看次数

SignalR奇怪的重新连接模式

我正在使用SignalR在非常特定的网络条件下(一个疯狂的代理).所以套接字根本不起作用,我必须使用长轮询.当我刷新页面时,它似乎工作了一段时间,但第一次Disconnect发生了.我正在尝试自动重新连接断开连接的事件和以下模式:

  1. 页面加载后,集线器在大约110秒内断开连接(默认超时)
  2. 第一次断开连接后,需要3个Disconnected事件才能重新启动集线器(因此它仅在第4次尝试时连接)
  3. 之后,它总是在第一次尝试时重新连接,但在大约10-15秒(不是110秒)后断开连接.因此看起来保持活动超时以某种方式在这里被调用(虽然它不是第一次尝试).

这种行为似乎很奇怪.我能做些什么来改善它吗?

.net asp.net-mvc signalr

11
推荐指数
1
解决办法
458
查看次数

Android应用没有从SignalR中心接收数据

我已经阅读了这些主题:
如何在Android Android Client中使用SignalR
但是.net客户端从SignalR服务器获取数据

我用Android编写了一个与SignalR配合使用的简单聊天系统.
它应该是客户端发送消息(通过SendMessage在服务器上调用方法),服务器应该NewMessage在客户端上调用该方法.

这是我ChatHub用C#编写的类(简化).

public class ChatHub : Hub
{
    // Store the clients connections Id
    static readonly List<string> _connectedClients;

    public override Task OnConnected()
    {
        // Keep connections id
        // This section works fine and when the android device connects to the server,
        // Its connection id will stored.
        _connectedClients.Add(Context.ConnectionId)

        //... other codes
    }

    public void SendMessage(string message)
    {
        foreach (var connectionId in _connectedClients)
        {
            // according to the …
Run Code Online (Sandbox Code Playgroud)

c# java android chat signalr

11
推荐指数
1
解决办法
4370
查看次数