标签: signalr

.net localhost网站一直在制作获取arterySignalR/poll?transport = longPolling&connectionToken = calls

我创建了一个新的VS 2013项目,并使用Firefox浏览器查看了default.aspx页面.当我检查它已经进行的网络通话时,我看到它不断调用:

http://localhost:50682/6a663a78019845d5ade4a328cad09cc2/arterySignalR/poll?transport=longPolling&connectionToken=AQAAANCMnd8BFdERjHoAwE%2FCl%2BsBAAAAOBmDwPWa2ky2MAZXFHBMVAAAAAACAAAAAAAQZgAAAAEAACAAAADSADQXBVKiKczflJ0OzUjOLduFTJE4zd%2FLHWGpDfXnuAAAAAAOgAAAAAIAACAAAACyEX81VwilygfphPoEKCYQ6ZwrkzExoKfZzEMkqBKqqzAAAADG%2BDJbrEFOfsNm9OKhqacnGseQvrwy5kmyZnI5YJiZbjYFgzMELXHfwA7Sxjj4osJAAAAAvQvoG4N0nn8eB9FRaJaZyqaUDF%2F9ypvGN%2B%2BVefnx8U1Fq6P9HXO9vEC%2BfA2s8R4jik58rD4IcFMjM4P8l5kv6g%3D%3D&messageId=d-F1180A0E-W%2C0%7Cl%2C4%7Cm%2C0&requestUrl=http%3A%2F%2Flocalhost%3A50656%2Fdefaulttest&browserName=Firefox&tid=4&_=1384207744328
Run Code Online (Sandbox Code Playgroud)

它为什么这样做?我如何停止这些电话?我看到每隔6秒对上述URL进行无限次调用.请帮助我理解这一点并解决这个问题.

asp.net signalr signalr-hub signalr.client

279
推荐指数
3
解决办法
8万
查看次数

SignalR如何在内部工作?

任何人都可以让我知道SignalR如何以高水平的方式在内部工作?

我猜它正在使用刷新数据,Response.Flush并且在客户端它以一定的间隔发送Ajax请求.这是对的吗?

signalr

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

SignalR:为什么选择Hub与Persistent Connection?

我最近一直在搜索和阅读SignalR,虽然我看到很多关于Hubs和Persistent Connections之间差异的解释,但是我还没能把我的脑袋放到下一个级别,这就是为什么我会选择一种方法而不是另一种?

signalr

149
推荐指数
4
解决办法
4万
查看次数

我可以同时包含SignalR和RESTful API吗?

我有一个使用ASP.NET开发的单页Web应用程序.我最近使用SignalR库将许多Web方法转换为基于推送的方法.这真的大大增加了页面,减少了页面上的大量服务器调用.

与此同时,我也一直在寻找RESTful ASP.NET WebAPI的一些服务器端方法,真正的美妙之处在于它允许在我开发的同时为外部应用程序创建API.核心应用程序(这对我正在做的事情很重要).

然而,在看了几篇文章和 两个问题后,似乎推送和WebAPI方法似乎是两种完全不同的客户端 - 服务器通信范例.我敢肯定我可以创建各种方法,可以通过任何协议访问,但我不确定是否有这个陷阱或如果这被认为是草率 - 也许有一个更优雅的方式来实现我的目标对于.

在某种情况下,我希望RESTful WebAPI通过SignalR集线器广播事件......相反(SignalR需要访问WebAPI)似乎不太可能,但我认为仍然可能.

有没有人这样做过?有没有人对如何进行有任何建议或提示?这里最优雅的方式是什么?

asp.net rest web-applications signalr asp.net-web-api

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

使用BookSleeve的ConnectionUtils.Connect()将SignalR与Redis消息总线故障转移一起使用

我正在尝试使用SignalR应用程序创建Redis消息总线故障转移方案.

首先,我们尝试了一个简单的硬件负载均衡器故障转移,它只监控两台Redis服务器.SignalR应用程序指向单个HLB端点.然后我失败了一台服务器,但无法成功通过第二台Redis服务器获取任何消息,而没有回收SignalR应用程序池.可能这是因为它需要向新的Redis消息总线发出设置命令.

从SignalR RC1开始,Microsoft.AspNet.SignalR.Redis.RedisMessageBus使用Booksleeve RedisConnection()连接到pub/sub的单个Redis.

我创建了一个新类,RedisMessageBusCluster()它使用Booksleeve ConnectionUtils.Connect()连接到Redis服务器集群中的一个.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using BookSleeve;
using Microsoft.AspNet.SignalR.Infrastructure;

namespace Microsoft.AspNet.SignalR.Redis
{
    /// <summary>
    /// WIP:  Getting scaleout for Redis working
    /// </summary>
    public class RedisMessageBusCluster : ScaleoutMessageBus
    {
        private readonly int _db;
        private readonly string[] _keys;
        private RedisConnection _connection;
        private RedisSubscriberConnection _channel;
        private Task _connectTask;

        private readonly TaskQueue _publishQueue = new TaskQueue();

        public RedisMessageBusCluster(string serverList, int db, IEnumerable<string> keys, IDependencyResolver resolver) …
Run Code Online (Sandbox Code Playgroud)

c# failover booksleeve signalr

112
推荐指数
1
解决办法
7156
查看次数

SignalR - 使用(IUserIdProvider)*NEW 2.0.0*向特定用户发送消息

在最新版本的Asp.Net SignalR中,添加了一种使用"IUserIdProvider"接口向特定用户发送消息的新方法.

public interface IUserIdProvider
{
   string GetUserId(IRequest request);
}

public class MyHub : Hub
{
   public void Send(string userId, string message)
   {
      Clients.User(userId).send(message);
   }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:我如何知道我向谁发送信息?这种新方法的解释非常肤浅.SignalR 2.0.0的声明草案带有这个bug并且没有编译.有没有人实现过这个功能?

更多信息:http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections#IUserIdProvider

拥抱.

asp.net asp.net-mvc real-time signalr

91
推荐指数
4
解决办法
9万
查看次数

Nodejs与SignalR:为什么我们需要服务器端的JavaScript?

既然我已经了解了Node.js,我一直都是它的粉丝.但今天我发现了SignalR,它为ASP.NET提供了另一种异步 - 可扩展 - 实时模型.

据我所知,在的Node.js的SignalR的主要优点是客户机 - 服务器之间共享代码(另一个优势应该在于它是跨平台),和SignalR的主要优势是一个更加成熟的框架和更好工具(IDE)支持.所以我想知道:如果SignalR在这里,我们是否还需要Windows上的Node.js?我不知道Node.js有什么优点吗?

asp.net asynchronous node.js signalr

90
推荐指数
1
解决办法
4万
查看次数

如何在hubpipleline之外使用SignalR hub实例

我正在使用SignalR向所有客户广播消息.我需要在我的集线器类之外触发广播,如下所示:

var broadcast = new chatHub(); broadcast.Send("Admin","stop the chat");

我收到错误消息:

不支持使用不是由HubPipeline创建的Hub实例.

signalr signalr-hub

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

SignalR控制台应用示例

是否有使用signalR将消息发送到.net集线器的控制台或winform应用程序的小示例?我已经尝试过.net示例并查看了wiki但是对我来说没有意义的中心(.net)和客户端(控制台应用程序)之间的关系(找不到这个例子).应用程序是否只需要连接集线器的地址和名称?

如果有人可以提供一小段代码,显示应用程序连接到集线器并发送"Hello World"或.net中心收到的内容?

PS.我有一个标准的集线器聊天示例,如果我尝试在Cs中为它分配一个集线器名称,它停止工作,即[HubName("test")],你知道这个的原因吗?

谢谢.

当前控制台应用代码.

static void Main(string[] args)
{
    //Set connection
    var connection = new HubConnection("http://localhost:41627/");
    //Make proxy to hub based on hub name on server
    var myHub = connection.CreateProxy("chat");
    //Start connection
    connection.Start().ContinueWith(task =>
    {
        if (task.IsFaulted)
        {
            Console.WriteLine("There was an error opening the connection:{0}", task.Exception.GetBaseException());
        }
        else
        {
            Console.WriteLine("Connected");
        }
    }).Wait();

    //connection.StateChanged += connection_StateChanged;

    myHub.Invoke("Send", "HELLO World ").ContinueWith(task => {
        if(task.IsFaulted)
        {
            Console.WriteLine("There was an error calling send: {0}",task.Exception.GetBaseException());
        }
        else
        {
            Console.WriteLine("Send Complete.");
        }
    });
 } …
Run Code Online (Sandbox Code Playgroud)

c# signalr

77
推荐指数
5
解决办法
9万
查看次数

从系统中的其他位置调用SignalR集线器客户端

我已经建立了一个SignalR集线器来在服务器和客户端之间进行通信.中心服务器端代码存储在名为Hooking.cs的类中.我想要的是能够调用Hooking.cs中定义的方法,允许我从应用程序的任何地方向任何连接的客户端广播消息.似乎为每个客户端/服务器调用创建了一个新的Hooking.cs实例,所以我希望我能够使用像

var hooking = new Hooking();
hooking.Test();
Run Code Online (Sandbox Code Playgroud)

用Hooking.cs中定义的方法Test()如

public static void Test() {
    Clients.test()
}
Run Code Online (Sandbox Code Playgroud)

并与客户端javascript

var hooking = $.connection.hooking;
hooking.test = function() { alert("test worked"); };
$.connection.hub.start()
Run Code Online (Sandbox Code Playgroud)

不幸的是,它并不那么简单,因为客户端不是静态的,因此无法从静态方法访问.

通过SignalR源代码,我遇到了一个看起来很有前景的方法Hubs.Invoke(string hubName, string method, params object[] args),所以我希望我可以使用类似的东西,Hubs.Invoke("Hooking", "Test")但是我无法使它工作.

任何有关这方面的帮助将非常感激

javascript c# asp.net-mvc signalr signalr-hub

72
推荐指数
4
解决办法
6万
查看次数