我想实现我的想法,开发一个具有客户端/服务器端的应用程序,并将客户端连接到服务器,这样他们就能够实时传输消息。
所以我将使用C#开发,但问题是:我应该使用什么?我不知道哪种方法对于聊天更好。 我需要在Net.Sockets,WCF和ASP.NET之间进行选择。所以我请你帮我选择。如果我使用ASP.NET,我将不得不玩自私的东西,因为我不想创建一个网站,或类似的东西来使用聊天。
答案 0 :(得分:0)
首先,让我们从您的变体开始
Net.Sockets太低了。制作可接受的协议很难。但您可以使用现有协议 - WebSockets。有一个教程如何在c#上编写websocket服务器:https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_server
可能,如果您选择WCF,您可以尝试通过netTcpBinding使用WCF双工持久连接。很容易实现自托管WCF服务。但是WCF很复杂,我认为这对于简单的任务来说是一个重要的开销。另外,正如我所知,双工连接通过使用长轮询工作,浪费了大量资源。请仔细选择此变体。
ASP.NET。如果你在谈论MVC或Web Api,你应该使用长轮询,这会浪费大量资源并且不是真正的实时
还有另一种变体 - ASP.NET SignalR(使用WebSockets工作)
答案 1 :(得分:0)
正如@nsinreal所提到的,SignalR可能是最好的方式。
网上有很多例子 - 这里有一个让你上手的例子:
http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr
这是一个聊天应用程序,不亚于:)