1

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

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

我觉得这不是一个好方法。我正在为近 30000 的目标受众制作这个应用程序。他们将能够在一次会话中一对一地聊天。

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

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

编辑 任何著名聊天应用程序(如whats 应用程序、facebook messenger)的小工作示例将是一个很大的帮助。谢谢。

4

1 回答 1

2

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

这样做的主要好处是您可以将客户端连接到服务器,并且客户端几乎可以是任何语言,它不必是 C# - 只要该语言支持套接字,您就可以美好的。

最重要的是,您可以让客户端侦听服务器,这样就无需每隔几秒钟轮询一次服务器以获取新消息;客户端套接字将在服务器发送数据时接收数据,并且您可以立即处理它,几乎是实时的,而如果您通过 HTTP 轮询服务器以获取新消息,例如 3 秒,您将始终结束您的聊天服务出现延迟,我认为您会希望避免这种情况。

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

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

于 2013-07-28T13:55:26.847 回答