在c#中使用后端进行跨平台聊天应用的方法

时间:2013-07-28 13:48:04

标签: c# android asp.net wcf chat

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

现在我正在为此制作Android客户端并为用户获取消息我需要以特定间隔(3秒)执行http请求。

我认为这不是一个很好的方法。我正在为近30000的目标受众制作这个应用程序。他们可以在一个会话中一对一聊天。

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

我听说过wcf,但我不清楚我应该采取什么方法。请引导我了解聊天应用的方法。

修改 任何着名的聊天应用程序的小工作的一个例子,如什么应用程序,Facebook信使将是一个很大的帮助。 感谢。

1 个答案:

答案 0 :(得分:2)

你可以用HTTP做,但我建议使用TCP代替。在 codereview right here上,基于C#的TCP服务器有一个非常可靠的基础,它将概述如何处理Socket对象如何正确处理连接。

这样做的主要好处是你可以将你的客户端连接到服务器,客户端几乎可以是任何语言,它不一定是C# - 只要语言支持套接字,你会没事的。

最重要的是,您可以让客户端监听服务器,从而无需每隔几秒轮询服务器以获取新消息;客户端套接字将在服务器发送时接收数据,您几乎可以立即实时处理它,而如果您每隔一秒钟(而不是3秒)通过HTTP轮询服务器以获取新消息,您将始终结束延迟你的聊天服务,这是我认为你想避免的。

请参阅上面链接的CodeReview上的代码示例,并阅读Socket在C#中的工作方式,TCP如何在保证方面工作(TCP保证通过它发送的任何内容最终会在另一个上发送在相同的顺序,但不一定在一个数据包等,并且我非常有信心,如果你充分利用它,你将能够制作出色的聊天应用程序。

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