c# - 我可以在 SignalR Hub 中调试 OnConnected 方法吗?

标签 c# asp.net asp.net-mvc signalr signalr-hub

我的 asp.net 项目中有一个 Hub,我覆盖了 OnConnected 方法,我可以调试 OnConnected 方法中的代码吗?我设置了一个断点,但它没有触发。

    public class ConsultasHub : Hub
    {                    
        public override Task OnConnected()
        {
            //breakpoint here
            //some code
            //[...]
            return base.OnConnected();
        }

    }
}

最佳答案

这是一个棘手的问题。按照设计,如果您没有对集线器的任何订阅,则客户端无法从服务器获取任何消息,因此不会调用 OnConnected。 我尝试了以下方法:

using System;
using System.Web;
using Microsoft.AspNet.SignalR;
using System.Web.Script.Serialization;
using System.Collections.Generic;
using System.Threading.Tasks;

public class ConsultasHub : Hub {
    public override Task OnConnected() {
        //breakpoint here
        //some code
        //[...]
        return base.OnConnected();
    }
}

调用:

var chat = $.connection.consultasHub;

console.log("connecting...");
$.connection.hub.start().done(function () {
    console.log("done.");
});

并且 OnConnected 未触发,控制台消息“完成”。是写的。

但是,一旦我有一个事件和一个订阅,

using System;
using System.Web;
using Microsoft.AspNet.SignalR;
using System.Web.Script.Serialization;
using System.Collections.Generic;
using System.Threading.Tasks;

public class ConsultasHub : Hub {
    public override Task OnConnected() {
        //breakpoint here
        //some code
        //[...]
        return base.OnConnected();
    }

    public void SendMessage( string message ) {
        Clients.All.message(message);
    }
}   
var chat = $.connection.consultasHub;
chat.client.message = function (message) {
    console.log("message: " + message);
};

console.log("connecting...");
$.connection.hub.start().done(function () {
    console.log("done.");
});

OnConnected 触发(到达断点)。试试看! 希望对您有所帮助。

关于c# - 我可以在 SignalR Hub 中调试 OnConnected 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31798239/

相关文章:

c# - Nuget MVC PagedList 页面链接无法正常工作

c# - NUnit 测试 - 循环 - C#

c# - 无法确定 Azure 移动服务 DataObject 中类型的复合主键排序

c# - 如何在 C# 中转义字符串,以便在 LDAP 查询中使用

c# - 在Windows服务中使用计时器

javascript 变量变量名和全局作用域 (pinesnotify)

Asp.net将.net框架4.0更改为3.5

asp.net - 为所有页面生成本地资源

c# - 如何从下拉列表中获取id?

c# - DateTime 销毁 View