C# 一种基于c语言的跨平台聊天应用程序的开发方法#

C# 一种基于c语言的跨平台聊天应用程序的开发方法#,c#,android,asp.net,wcf,chat,C#,Android,Asp.net,Wcf,Chat,我想创建一个以c为后端的跨平台聊天应用程序# 我搜索了一种这样做的方法,发现我可以通过向服务器上的处理程序发送http请求来实现,并相应地使用响应。 所以,到目前为止,我制作了可以添加用户、登录、发送和接收消息的处理程序,使用数据库进行存储 现在我正在为此制作android客户端,为了给用户获取消息,我需要以特定的间隔(3秒)进行http请求 我觉得这不是一个好办法。我正在为近30000名目标受众制作此应用程序。他们可以在一次会议上一对一地聊天 我只是想知道我是否朝着正确的方向前进,或者有更多更

我想创建一个以c为后端的跨平台聊天应用程序# 我搜索了一种这样做的方法,发现我可以通过向服务器上的处理程序发送http请求来实现,并相应地使用响应。 所以,到目前为止,我制作了可以添加用户、登录、发送和接收消息的处理程序,使用数据库进行存储

现在我正在为此制作android客户端,为了给用户获取消息,我需要以特定的间隔(3秒)进行http请求

我觉得这不是一个好办法。我正在为近30000名目标受众制作此应用程序。他们可以在一次会议上一对一地聊天

我只是想知道我是否朝着正确的方向前进,或者有更多更好的方法使用后端制作聊天应用程序

我听说过wcf,但我不清楚应该采取什么方法。请指导我有关聊天应用程序的方法

编辑 FacebookMessenger是任何著名的聊天应用程序(如whats应用程序)都不起作用的一个例子,它将是一个很大的帮助。
谢谢。

您可以使用HTTP,但我建议改用TCP。基于codereview的基于C#的TCP服务器有一个非常坚实的基础,它将概述如何处理
Socket
对象以及如何正确处理连接

这样做的主要好处是,您可以将客户机连接到服务器,客户机实际上可以是任何语言,而不必是C#-只要该语言支持套接字,您就可以了

最重要的是,您可以让客户端监听服务器,这样就不需要每隔几秒钟轮询服务器以获取新消息;当服务器发送数据时,客户端套接字将接收数据,您可以立即几乎实时地处理数据,而如果您每隔3秒通过HTTP轮询服务器以获取新消息,您的聊天服务将始终延迟,这是我认为您希望避免的

请参阅我上面链接的CodeReview上的代码示例,并阅读
Socket
s在C#中的工作原理,以及TCP在保证方面的工作原理(TCP保证通过它发送的任何内容都将以相同的顺序到达另一端,但不一定在一个数据包中,等等)我很有信心,如果你能充分利用它,你将能够成为一个优秀的聊天应用程序


编辑:我刚刚注意到你帖子上的WCF标签。对于这个特定的项目,我个人会避开它,因为您希望实现跨平台支持;为此,请尝试尽可能低的级别。

谢谢您的回复,您是对的,我希望毫不拖延地以最小的负载完成这项工作。我现在正考虑将套接字作为最佳选择,但出于好奇,你能告诉我什么应用程序、kik和类似的应用程序是如何工作的吗?他们也使用插座吗?我没有具体研究过,但我想他们会的。我非常怀疑他们每x秒轮询一次服务器,特别是在移动平台上,在后台运行时CPU时间有限。我在这里只是猜测,但我认为他们在收到来自服务器的新消息时会使用CPU时间来显示通知。我刚刚看到了web浏览器中套接字的工作方式,它的方式很酷。