我的 asp.net 项目中有一个集线器,并且我覆盖了 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/