C# 信号机连接但不连接';不要推送信息
我一直在致力于将signalr作为wcf服务的一部分来实现,以便与.net客户端通信。除了连接消息之外,所有通信都是向客户端传递动态负载的单向通信 我已经设法将其设置为客户端将连接到服务并传递连接消息,但我无法将消息从服务推送到客户端 抱歉,如果我错过了其他地方的答案,但我无法找到失败的原因,因为它似乎遵循了“操作方法” 任何帮助都将不胜感激,并提前向您表示感谢 服务器端: WCF外部呼叫C# 信号机连接但不连接';不要推送信息,c#,asp.net,.net,wcf,signalr,C#,Asp.net,.net,Wcf,Signalr,我一直在致力于将signalr作为wcf服务的一部分来实现,以便与.net客户端通信。除了连接消息之外,所有通信都是向客户端传递动态负载的单向通信 我已经设法将其设置为客户端将连接到服务并传递连接消息,但我无法将消息从服务推送到客户端 抱歉,如果我错过了其他地方的答案,但我无法找到失败的原因,因为它似乎遵循了“操作方法” 任何帮助都将不胜感激,并提前向您表示感谢 服务器端: WCF外部呼叫 public class MessageService : IMessageService {
public class MessageService : IMessageService
{
public string PushAlerts()
{
var payLoad = new PayLoad
{
MethodName = "alerts"
};
IHubContext connectionHub = GlobalHost.ConnectionManager.GetHubContext<PushConnection>();
connectionHub.Clients.All.Notify(payLoad);
}
}
客户端:
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();
var querystringData=newdictionary{};
添加(“连接消息”、“foo连接”);
var hubConnection=新的hubConnection(“http://localhost:60479/“,查询字符串数据)//在本地运行直到工作
hubConnection.TraceLevel=TraceLevel.All;
hubConnection.TraceWriter=控制台.Out;
IHubProxy clientHubProxy=hubConnection.CreateHubProxy(“PushHub”);
clientHubProxy.On(“通知”,有效负载=>
SynchronizationContext.Current.Post(委托
{
响应方法(有效载荷);
},空)
);
等待连接。开始();
我漏掉了有效载荷,但它目前只保存一个字符串值。我还设置了一个用于记录perpose的管道模块
再次感谢好的,我用两种方法解决了这个问题:首先,我将调用移动到中心内部的客户端,然后从我的wcf服务中的方法调用它
[HubName("PushHub")]
public class PushHub : Hub
{
IHubContext connectionHub = GlobalHost.ConnectionManager.GetHubContext<PushConnection>();
public void Send(Payload payload)
{
connectionHub.Clients.All.Notify(payLoad);
}
}
虽然做了很多修改,但希望我的回答能帮助他人。我讨厌删除链接。。。但你可能会在我的回答中发现一些有用的东西。没有一个链接是很酷的,如果它解决了我的问题:)
[HubName("PushHub")]
public class PushHub : Hub
{
IHubContext connectionHub = GlobalHost.ConnectionManager.GetHubContext<PushConnection>();
public void Send(Payload payload)
{
connectionHub.Clients.All.Notify(payLoad);
}
}
clientHubProxy.On("Notify", (payLoad) => { dostuff };