如题,设想做一个项目需要接收大量物联网硬件设备上传数据信息(当然,数据量不大,每次不超过512字节),最高同时在线5000个设备(TCP连接可双方通信收发数据),需要这么一个接收程序,该用什么框架? 见到一些做类似物联网设备的GPS系统的服务器,成千上万辆车在里面监控也很稳定,这其中要注意什么。 描述不明白的我会在下面做补充的。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
如果是 Windows 下,建议了解一下「IOCP」,如果是 Linux 下,建议了解一下「epoll」。 如果业务不复杂,只是收发大量数据的话,应该就足够了。 当然如果不是一定得 C/C++ 的话,可以试试Python 的「tornado」
PS:LZ你说的这个数据量主流的技术都 hold 的住
如果有 C++ 背景可以考虑用 Thrift,这个需要服务器和客户端一起使用。
如果只考虑服务器,Go 和 NodeJS 都是不错的选择,看看官方的例子就已经比较清楚了。
至于 socket 连接的稳定性,主要还是在于 TCP 心跳检测和数据重传做的好不好,对于信道不好的情况,比如使用 3G 卡做联网时,要每隔几十秒就发一个没有数据的心跳包,保证尽早检测到断线请求,尽早重连。服务器端性能应该问题不大,就算设备每秒钟都发数据只要业务不太复杂就不会遇到什么瓶颈。
建议你看下golang
有个c++框架ACE
fastrpc 最好用的c++服务器框架 简单到你5秒上手
如果用golang那就方便了,天生的高并发编程,如果C的话可以考虑libevent
上次看到一个挺不错的服务器框架,在开源中国上NF kit 可以研究了下
如果是 Windows 下,建议了解一下「IOCP」,如果是 Linux 下,建议了解一下「epoll」。
如果业务不复杂,只是收发大量数据的话,应该就足够了。
当然如果不是一定得 C/C++ 的话,可以试试Python 的「tornado」
PS:LZ你说的这个数据量主流的技术都 hold 的住
如果有 C++ 背景可以考虑用 Thrift,这个需要服务器和客户端一起使用。
如果只考虑服务器,Go 和 NodeJS 都是不错的选择,看看官方的例子就已经比较清楚了。
至于 socket 连接的稳定性,主要还是在于 TCP 心跳检测和数据重传做的好不好,对于信道不好的情况,比如使用 3G 卡做联网时,要每隔几十秒就发一个没有数据的心跳包,保证尽早检测到断线请求,尽早重连。服务器端性能应该问题不大,就算设备每秒钟都发数据只要业务不太复杂就不会遇到什么瓶颈。
建议你看下golang
有个c++框架ACE
fastrpc 最好用的c++服务器框架 简单到你5秒上手
如果用golang那就方便了,天生的高并发编程,如果C的话可以考虑libevent
上次看到一个挺不错的服务器框架,在开源中国上NF kit 可以研究了下