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