我有一个SignalR应用程序和一个控制台应用程序。
我在IIS上运行我的SignalR应用程序。
我有一个连接的控制台应用程序,应该在收到响应时打印出一些非常基本的消息。
在本地,一切正常。
当我将SignalR应用程序发布到我的dev时。盒子里,我突然无法收到来自集线器的消息。
我的控制台应用调用了hub方法" CaptureComplete"
//notify that a specific camera has completed a capture
public void CaptureComplete(string captureId)
{
var g = Guid.NewGuid();
Clients.All.cameraCaptureCompleteEvent(g.ToString());
}
上述方法应该将GUID作为字符串返回到我的控制台应用程序。
我的控制台应用程序虽然已连接到SignalR中心,但仍会收到空响应。
我错过了一些明显的东西吗? 为什么这在本地工作,而不是在开发/托管环境中工作?
答案 0 :(得分:0)
CaptureComplete
是void
方法,因此它不会返回任何结果,因此task.Result
为空。如果您的CaptureComplete
返回了一个值,则可以使用task.Result
获取该值。您向Clients.All.cameraCaptureCompleteEvent(g.ToString());
客户端广播的字符串将在cameraCaptureCompleteEvent
客户端方法的回调中可用。要订阅此回调,您需要致电:
myHub.On<string>("cameraCaptureCompleteEvent", s => Console.WriteLine);