【发布时间】:2015-01-07 09:27:53
【问题描述】:
我正在尝试从同一解决方案中的另一个项目在一个项目中运行 signalR 集线器方法。两个项目都运行在同一个 Web 前端。
调用以下代码时,代码在集线器中运行,直到由于未使用 IHubContext 对象而出现预期错误。
presentation.ChatHub ch = new ChatHub();
ch.Send(message, "", "");
发生这种情况时,我将代码更改为以下内容,但是集线器内的代码不再运行。
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
context.Clients.All.Send(message, "", "");
hub代码调用如下:
public class ChatHub : Hub
{
public int Send(string message, string fName, string IName)
{
//Code Goes here.
}
我读过的所有内容,包括这里的其他答案似乎都指向获取 IhubContext 然后调用 clients.all 应该可以工作,但我不知道为什么它不工作
编辑:我已经更改了我的代码,以便在运行之前在数据库中创建一个帖子,并对其进行更改,以便它运行与 javascript 接收端匹配的“broadcastMessage”函数。但这仍然无法正确连接,并且没有命中 javascript 函数。
IHubContext context = GlobalHost.ConnectionManager.GetHubContext("chatHub");
context.Clients.All.broadcastMessage(message, pid, userName, FirstName, count, "", "", nDate);
【问题讨论】: