在Silverlight应用程序退出时发送双工消息



我有一个适用于Silverlight应用程序的全双工消息传递解决方案。现在我想添加一个功能。当用户离开应用程序时,我想在退出前发送最后一条消息来通知服务器。

我尝试在应用程序退出事件期间发送双工消息,但DuplexServiceClient已处于CommunicationState.Faulted状态。

我还尝试建立新的连接并发送消息。客户端似乎一切都很好,但根本没有发送任何消息。我用Fiddler检查了两次。

App.Current.Exit += (s, e) =>
{
    var dsc = new DuplexServiceClient(_binding, new EndpointAddress("../Services/MyService.svc"));
    dsc.SendToServiceAsync(new UserLeave());
};

关键的是,我需要在用户离开应用程序后立即通知服务器,所以在这种情况下,超时或类似的解决方案对我来说不够好。

有人有有效的解决方案吗?

我在SO中发现了类似的主题。Aliostad的回答让我再次思考这个问题。你永远不能确定你会从客户那里得到他要离开的信号。所以我最终得到了超时解决方案。

相关内容

  • 没有找到相关文章

最新更新