【发布时间】:2014-07-11 18:31:33
【问题描述】:
我一直致力于将信号器作为 wcf 服务的一部分来与 .net 客户端通信。除了连接消息之外,所有通信都是将动态有效负载传递到客户端的一种方式。
我已设法设置它,以便客户端连接到服务并传递连接消息,但我无法将消息从服务推送到客户端。
抱歉,如果我在其他地方错过了这个答案,但我一直无法找到失败的原因,因为它似乎遵循“如何做”
任何帮助将不胜感激,并在此先感谢您
服务器端:
WCF 外部调用
public class MessageService : IMessageService
{
public string PushAlerts()
{
var payLoad = new PayLoad
{
MethodName = "alerts"
};
IHubContext connectionHub = GlobalHost.ConnectionManager.GetHubContext<PushConnection>();
connectionHub.Clients.All.Notify(payLoad);
}
}
我的中心
[HubName("PushHub")]
public class PushHub : Hub
{
public override Task OnConnected()
{
var connectionMessage = Context.QueryString["CONNECTION MESSAGE"];
if (connectionMessage != null)
{
Debug.WriteLine("connectionMessage");
}
return base.OnConnected();
}
}
客户端:
var querystringData = new Dictionary<string, string>{};
querystringData.Add("CONNECTION MESSAGE", "foo Connection");
var hubConnection = new HubConnection("http://localhost:60479/", querystringData); //Running local till working
hubConnection.TraceLevel = TraceLevels.All;
hubConnection.TraceWriter = Console.Out;
IHubProxy clientHubProxy = hubConnection.CreateHubProxy("PushHub");
clientHubProxy.On("Notify", payLoad =>
SynchronizationContext.Current.Post(delegate
{
ResponseMethod(payLoad);
}, null)
);
await hubConnection.Start();
我错过了有效载荷,但目前只包含一个字符串值。我还设置了一个用于记录 perpose 的管道模块。
再次感谢
【问题讨论】:
-
我讨厌删除链接...但您可能会在我的回答中找到有用的内容。 stackoverflow.com/questions/24185227/wcf-service-with-signalr/…
-
如果链接能解决我的问题,那就太酷了:)
标签: c# asp.net .net wcf signalr