C# NET内核和Xamarin中的RPC

C# NET内核和Xamarin中的RPC,c#,xamarin,network-programming,.net-core,rpc,C#,Xamarin,Network Programming,.net Core,Rpc,我正在用C语言为移动设备构建一个在线可收藏的卡片游戏的早期阶段。游戏客户端本身是用Xamarin构建的,最终将在iOS和Android上运行。游戏服务器是一个运行在Linux服务器上的.NET核心控制台应用程序 但是,我在决定如何管理客户端和服务器之间的通信时遇到了问题。我是一个完全的网络初学者;这个项目的主要目的是学习一点如何做 我的计划是在两者之间使用某种形式的RPC进行通信,这样客户机就可以简单地调用服务器上的方法并获得有用的响应,比如: CardCollection cards = Se

我正在用C语言为移动设备构建一个在线可收藏的卡片游戏的早期阶段。游戏客户端本身是用Xamarin构建的,最终将在iOS和Android上运行。游戏服务器是一个运行在Linux服务器上的.NET核心控制台应用程序

但是,我在决定如何管理客户端和服务器之间的通信时遇到了问题。我是一个完全的网络初学者;这个项目的主要目的是学习一点如何做

我的计划是在两者之间使用某种形式的RPC进行通信,这样客户机就可以简单地调用服务器上的方法并获得有用的响应,比如:

CardCollection cards = Service.GetCards(playername);
其中,GetCardsplayername是服务器上的一种方法,可使用服务契约使用。我的初衷是使用WCF和NetTcpBinding实现这一目的,因为它完全符合我的需要。然而,事实证明,这在.NETCore中是不可用的。因此,我决定使用gRPC,它也几乎完全满足了我的需要——但事实证明,Xamarin无法使用gRPC

所以,我的问题是-是否有一个预先存在的库,我可以用来管理在.Net Core和Xamarin中工作的客户端和服务器之间的通信,或者我需要创建自己的库?如果我需要自己写一些东西,是否有关于如何在.NET中最好地完成这项工作的有用文档/指导?我找到了构建基本TCP服务器的教程,但基本上就是这样。我不知道如何根据我的需要扩大规模


到目前为止,我发现的几乎所有信息都是关于创建RESTful web服务的,这与我需要的有点不同。实际上,我并不需要RESTAPI的许多特性,我更喜欢通过TCP而不是HTTP直接通信,以确保最大的性能——尽管如果必要的话,我可以相信其他方面。服务器还需要能够同时处理多个请求。

嗯,我找不到任何关于如何从头开始在.NET核心服务器和Xamarin客户端之间实现RPC的文档,也找不到任何其他方法的信息


然而,经过大量的搜索,我发现了一个很明显同时支持Xamarin和.NETCore的应用程序,它非常符合我的工作方式。我在让它工作时遇到了一些困难,但我认为这属于它自己的问题。

我更喜欢通过TCP而不是HTTP直接通信许多公司使用防火墙并阻止80443以外的传出端口。。。等等。为了确保最大的性能,您确定可以利用最小的差异吗?顺便说一句:你认为纸牌游戏需要实时响应吗?这是一个非常广泛的问题,实际上在你的帖子中有多个?s,其中有许多自以为是的答案。你真的应该把你的问题集中在一个特定的问题上,并且考虑把它转移到@Eser上——正如前面所说的,我是一个完全的网络初学者;我真的不知道我在做什么。我得到的印象是,差异很大,值得注意,直接使用TCP做事情似乎并不比使用HTTP更难,所以为什么不呢?但是,您对端口有一个很好的看法,如果性能差异很小,那么使用哪种端口就无关紧要了。正如你所说,它不需要实时响应;只是为了一次处理潜在的大量连接。@宿醉-我的问题基本上归结为如何在Xamarin/.NET Core中实现RPC,是否有合适的库(如WCF或gRPC)来简化此过程?-任何额外的固执己见的答案都只是我试图根据我迄今为止所做的研究缩小我认为我需要的范围。@Bob2004我应该如何在Xamarin/.NET Core中实现RPC,是否有像WCF或gRPC这样合适的库来简化这个过程推荐/第三方库选择:这不是stackoverflow的用途。它现在可以使用还是仍然存在问题?我也有同样的要求。