小背景: 我正在构建一个简单的回合制游戏。有一台托管WCF服务的服务器和使用Xamarin.Forms
(使用PCL库)构建的客户端。所以我想用双工通道构建一个非常简单的“请求 - 响应”服务器 - 做出动作并等待响应(捕获事件中的响应/回调)。但是...问题是,我看不到netTcp绑定或任何双工/双绑定那里。只有BasicHttpBinding
。如何处理Xamarin.Forms中的WCF Duplex?
我的代理PCL库目标:
- .NET框架4.5
- ASP.NET 1.0的核心
- 的Windows 8
- 的Windows Phone 8的Silverlight
- Xamarin.Android
- Xamarin .iOS
- Xamarin.iOS(经典)
我的问题是:我如何使基于事件的服务体系结构(与Callback的WCF双工通信) - 所以我可以在Xamarin.Forms中使用它?
在人这一点上的色调可能要downvote这个问题(或者已经做到了),所以我给搞什么名堂已经完成:
我发现票here和大量的抱怨(有和其他地方),Xamarin没有采取任何关于wcf双工通信。这看起来并不乐观。但是,也许你有一些很好的解决方法这个问题?
至于现在,我已经做了这样的:
public async Task<MyResponse> Start(int id)
{
MyResponse response;
// doing stuff...
return await Task.Factory.StartNew(() => response);
}
所以,我打电话异步服务,基本上等到返回。由于它是异步的,客户端的屏幕不会被冻结。我不知道这是最好的解决方案...
最好的解决方案是基于事件的架构(使用回调,因为你必须等待你的对手)。但我不知道该怎么做?它甚至有可能吗?
谢谢,
有一个关于它的讨论:[你们可以让一些团队成员去更新Xamarin.Android和Xamarin.iOS的WCF吗?](https://github.com/dotnet/wcf/issues/1688 ) – qakmak