我想在c#中创建一个带有后端的跨平台聊天应用程序,我搜索了一种这样做的方法,发现我可以通过http请求来实现对服务器上的处理程序的请求,并相应地使用响应。因此,到目前为止,我制作的处理程序可以添加用户、登录、发送和接收消息,使用数据库进行存储。
现在,我正在为这个做android客户端,为了获取用户的消息,我需要在特定的时间间隔(3秒)执行http请求。
我觉得这样做不是一个好办法。我正在为近30000的目标观众制作这个应用程序。他们可以在一次会议上一对一地聊天。
我只想知道我是朝着正确的方向前进,还是有更好的方法使用后端来制作聊天应用程序。
我听说过wcf,但我不清楚我应该采取什么方法。请指导我关于聊天应用程序的方法。
Edit是任何著名聊天应用的一个例子,比如whats,facebook将是一个很大的帮助。谢谢。
发布于 2013-07-28 13:55:26
您可以使用HTTP来完成这个任务,但我建议您使用TCP。基于C#的TCP服务器在codereview right here上有着非常坚实的基础,它将概述如何处理Socket对象,如何正确处理连接。
这样做的主要好处是,您可以将客户端连接到服务器,客户机几乎可以是任何语言,而不必是C# --只要该语言支持套接字,就可以了。
除此之外,您还可以让客户端监听服务器,这就不需要每隔几秒钟轮询服务器上的新消息;客户端套接字将在服务器发送数据时接收数据,您几乎可以实时地处理它,而如果您在HTTP上轮询新消息(比如3秒),那么您的聊天服务总是会出现延迟,我认为这是您想要避免的。
请参阅上面链接的CodeReview I上的代码示例,并阅读Socket在C#中的工作方式、TCP在保证方面的工作方式(TCP保证通过它发送的任何内容都会以相同的顺序在另一边结束,但不一定在一个数据包中,等等),我很有信心,如果您将所有这些都很好地使用,您将能够制作出一个优秀的聊天应用程序。
编辑:我刚注意到你的帖子上有WCF标签。对于这个特定的项目,我个人会避开它,因为您希望实现跨平台的支持;尽可能低级别的尝试。
https://stackoverflow.com/questions/17908862
复制相似问题