【发布时间】:2012-11-30 02:05:13
【问题描述】:
我意识到 SignalR 和 ASP.NET SignalR 之间存在重大变化,因此我更改了代码以适应这种变化。但由于某种原因,我无法找出正确的更改。
我遇到的问题是服务器没有向客户端发送消息。
旧 SignalR 代码:
服务器
var context = GlobalHost.ConnectionManager.GetHubContext<Dashboard>();
var subscribers = context.Clients;
if (!string.IsNullOrWhiteSpace(message.Source))
{
var subscriber = subscribers[message.Source];
subscriber.messageReceived(message);
}
客户
$.connection.dashboard.messageReceived = function(){...};
新代码(ASP.NET SignalR):
服务器
var context = GlobalHost.ConnectionManager.GetHubContext<Dashboard>();
var subscribers = context.Clients;
if (!string.IsNullOrWhiteSpace(message.Source))
{
var subscriber = subscribers.Group(message.Source);
subscriber.messageReceived(message);
}
客户
$.connection.dashboard.client.messageReceived = function(){...};
谁能帮我弄清楚这里出了什么问题?
【问题讨论】:
-
我希望这个逻辑不在集线器中: var context = GlobalHost.ConnectionManager.GetHubContext
(); var 订阅者 = context.Clients; -
@dfowler:它在 Hub 中的静态方法中:
public static void Publish(DashboardMessage message)。与发布一起,此静态方法还缓存消息以保留最后一个好的副本。为简洁起见,我忽略了这些细节。但我很想听听您对此的看法。 -
你可能想看看这个问题stackoverflow.com/questions/13531314/…
标签: signalr signalr-hub signalr.client