标签: signalr-hub

.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万
查看次数

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

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

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

我收到错误消息:

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

signalr signalr-hub

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

将SignalR 2.0 .NET客户端重新连接到服务器中心的最佳实践

我在移动应用程序中使用SignalR 2.0和.NET客户端,因此我需要处理各种类型的断开连接.有时SignalR客户端在没有我帮助的情况下重新连接 - 有时我必须通过再次调用HubConnection.Start()来重新连接.(因为SignalR在某些时候神奇地自动重新连接,我想知道我是否缺少功能或配置设置)

设置自动重新连接的客户端的最佳方法是什么?我已经看过处理Closed()事件的javascript示例,然后在n秒后连接.有没有推荐的方法?

我已经阅读了有关SignalR连接生命周期的文档和几篇文章,但我仍然不清楚如何处理客户端重新连接.

谢谢!

.net c# signalr-hub signalr.client signalr-2

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

从系统中的其他位置调用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万
查看次数

SignalR +通过操作方法向Hub发送消息

我正在使用SignalR的中心功能(https://github.com/SignalR/SignalR)向所有订阅的客户端发布消息:

public class NewsFeedHub : Hub
public void Send(string channel, string content)
{
    Clients[channel].addMessage(content);
}
Run Code Online (Sandbox Code Playgroud)

这通过Javascript调用"发送"时工作正常,但我也希望Web应用程序发布消息(来自ASP.NET MVC操作方法).我已经尝试实例化新对象ob NewsFeedHub并调用Send方法,但这会导致错误(因为未设置Hub的基础"连接").有没有办法在没有连接的情况下使用Hub?

asp.net-mvc message action signalr signalr-hub

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

何时会发生signalR重新连接?

我已经开始使用SignalR,并试图找出何时发生Hub Reconnect.我在网上找不到任何令人满意的解释.有人可以解释何时/为什么会发生重新连接?

.net reconnect signalr signalr-hub

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

SignalR无法读取未定义的属性客户端

我正在尝试将SignalR添加到我的项目中(ASPNET MVC 4).但我不能让它发挥作用.

在下图中,您可以看到我收到的错误. 图片 我已经阅读了很多stackoverflow帖子,但没有一个是解决我的问题.

这是我到目前为止所做的:

1) Ran Install-Package Microsoft.AspNet.SignalR -Pre
2) Added RouteTable.Routes.MapHubs(); in Global.asax.cs Application_Start()
3) If I go to http://localhost:9096/Gdp.IServer.Web/signalr/hubs I can see the file content
4) Added <modules runAllManagedModulesForAllRequests="true"/> to Web.Config
5) Created folder Hubs in the root of the MVC application
6) Moved jquery and signalR scripts to /Scripts/lib folder (I'm not using jquery 1.6.4, I'm using the latest)
Run Code Online (Sandbox Code Playgroud)

这是我的Index.cshtml

<h2>List of Messages</h2>

<div class="container">
    <input type="text" id="message" />
    <input type="button" id="sendmessage" value="Send" />
    <input …
Run Code Online (Sandbox Code Playgroud)

c# signalr signalr-hub signalr.client

48
推荐指数
5
解决办法
6万
查看次数

获取连接到SignalR集线器的侦听器,客户端的数量

有没有办法找出侦听器的数量(连接到集线器的客户端?)

如果至少连接了一个客户端,我正在尝试运行/启动任务,否则不启动它:

[HubName("taskActionStatus")]
public class TaskActionStatus : Hub, IDisconnect
{
    static CancellationTokenSource tokenSource;

    public void GetTasksStatus(int? siteId)
    {
        tokenSource = new CancellationTokenSource();
        CancellationToken ct = tokenSource.Token;

        ITaskRepository taskRepository = UnityContainerSetup.Container.Resolve<ITaskRepository>();

        // init task for checking task statuses
        var tasksItem = new DownloadTaskItem();
        taskRepository.GetTasksStatusAsync(siteId, tasksItem, ct);

        // subscribe to event [ listener ]
        tasksItem.Changed += new EventHandler<TaskEventArgs>(UpdateTasksStatus);
    }

    public void UpdateTasksStatus(object sender, TaskEventArgs e)
    {
        Clients.updateMessages(e.Tasks);
    }

    // when browsing away from page
    public Task Disconnect()
    {
        try
        {
            tokenSource.Cancel();
        } …
Run Code Online (Sandbox Code Playgroud)

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

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

从控制器的操作中调用hub方法

如何从控制器的操作中调用hub方法?这样做的正确方法是什么?

有人在帖子中使用过这个:

DefaultHubManager hd = new DefaultHubManager(GlobalHost.DependencyResolver);
var hub = hd.ResolveHub("AdminHub") as AdminHub;
hub.SendMessage("woohoo");
Run Code Online (Sandbox Code Playgroud)

但对我来说,这是投掷:

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

我还读到你可以创建一个集线器上下文,但我不想对这个动作负责,也就是说,动作做的事情如下:

hubContext.Client(...).someJsMethod(..)
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-4 signalr signalr-hub

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

使用SignalR 2.XX,Context.User.Identity.Name为null如何解决?

这让我疯了.

我正在使用最新的signalR版本(2.0.2).这是我的集线器代码(OnConnected)

        public override Task OnConnected()
        {
            //User is null then Identity and Name too.
            Connections.Add(Context.User.Identity.Name, Context.ConnectionId);
            return base.OnConnected();
        }
Run Code Online (Sandbox Code Playgroud)

这是我的Controller的登录方法:

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
              var user = await UnitOfWork.UserRepository.FindAsync(model.UserName,  model.Password);

                if (user != null)
                {
                    await SignInAsync(user, model.RememberMe);

                    return RedirectToLocal(returnUrl);
                }
            }

            TempData["ErrorMessage"] = Resources.InvalidUserNameOrPassword;

            // If we got this far, something failed, redisplay form
            return RedirectToAction("Index","Home");
        }
Run Code Online (Sandbox Code Playgroud)

我发现有些人在OnDisconnected上遇到这个问题,我甚至都没有.

我正在使用MCV5模板.

你知道什么是错的吗?

authentication asp.net-mvc signalr signalr-hub owin

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