c# - 在c#中使用后端的跨平台聊天应用程序的方法

标签 c# android asp.net wcf chat

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

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

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

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

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

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

最佳答案

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

这样做的主要好处是您可以将客户端连接到服务器,并且客户端实际上可以是任何语言,不一定是 C# - 只要该语言支持套接字,您会没事的。

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

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

编辑:我刚刚注意到您帖子中的 WCF 标记。对于这个特定项目,我个人会避开它,因为您想获得跨平台支持;为此,请尽可能降低级别。

关于c# - 在c#中使用后端的跨平台聊天应用程序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17908862/

相关文章:

java - FragmentTransaction 引起的 Android Studio NullPointerException

带有 ActiveDirectoryMembershipProvider 的 ASP.NET ChangePassword 控件

asp.net - 创建新的 Azure 应用服务时出现问题

java - 谷歌地图 Android 缩放到国家

android - 谷歌地图帮助

asp.net - 是否可以使用 HttpModule 对 SignalR 进行身份验证

c# - 防止在窗体标题栏上单击鼠标右键显示系统上下文菜单

c# - 为什么我可以放弃 IList<T> 的不变性?

C# 重新启动控制台应用程序

c# - System.Reflection.TargetInvocationException;需要帮助理解