使用WCF服务的TCP服务器

3
我是一位有经验的C#开发人员,但我迄今为止还没有开发过TCP服务器应用程序。现在我必须开发一个高度可扩展和高性能的服务器,可以处理至少5-10万个并发连接:通过GPRS从GPS设备获取原始字节数据。
一个常见的通信流程应该是这样的:
1. GPS设备启动连接到我的服务器 2. 我的服务器回答是否要获取数据 3. 设备发送GPS数据 4. 我的服务器向设备发送关于获取它的报告(类似校验和) 5. 从GPS获取新数据,报告,并再次重复这个流程 6. 最后GPS设备关闭连接
所以在我的服务器中,我需要:
1. 跟踪连接/活动客户端 2. 从服务器端关闭任何客户端 3. 捕捉设备关闭连接的事件 4. 获取字节数据 5. 向客户端发送数据
我开始在互联网上阅读有关此主题的文章,但对我来说似乎是一场噩梦。有很多方法,但我找不到最好的方法。
异步套接字方法似乎是最好的方法,但使用这种异步风格编写代码很糟糕,而且不容易调试。
那么我的问题是:你认为实现高性能C# TCP服务器的最佳方法是什么?你知道任何好的开源组件来做这个吗?(我尝试了几个,但我找不到一个好的。)
提前感谢您,期待专家回答!
1个回答

0

以下是两个建议的想法:

  1. WCF TCP(双工?)- 在这里,您可以使用异步模式,客户端和服务器都可以相互调用。需要一些管道工作,但有很多文档可供参考。

  2. RESTFUL - 我认为这可能是更好的选择。这非常容易实现异步,由于REST的无状态性质,因此开销要小得多。顺便说一下,您可以使用TCP进行此操作,尽管HTTP可能是更好的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接