GPS服务器:socket服务器方案-supersocket

[位置服务LBS] 季雨林 2019/6/23 22:34:26

前言

早在我参与开发.net架构下的高并发Socket的时候,找来找去只有IOCP方面的极少数参考代码。学习难度之大,踩坑之多,足足让我一不下心在这个领域摸索了数年之久。

现如今,一个偶然的机会,重新需要做一个高性能socket服务器,本次采用了近几年诞生的基于.net一个优秀socket框架:SuperSocket!

发现牛人只所以牛,在于技术能力的自我提升。说来惭愧,早在我开始入门学习socket服务端的时候,supersocket还并不被人所知,甚至可能supersocket作者比我使用iocp更晚。然而通过今日对supersocket的了解。技术上深感差距之大。


对比

本人为典型“野生程序员”:封装无力,基础概念混淆,干活总喜欢把各种该逻辑代码堆在一起很长一串,高级语言性能尽量回避,种种“野路子”不计其数。。。。

但是supersocket的代码可见其作者:软件工程思想深入,逻辑架构清晰,代码简洁高效,甚至代码直接兼容了多运行环境。

对比之下,深感佩服!


总结

SuperSocket代码非常优秀,针对GPS行业,物联网采集行业,IM通信行业等等众多socket使用场景均有简洁的入门方式。现如今官网已经发布2.0版本文档。这套框架,让那些socket新手们直接踩在了巨人肩膀上,避开了非常多的坑。socket这个东西对于新手来说真的有太多可以被坑的地方了:

多连接并发,数据包粘包,连接失效断开,心跳检测机制,多类型数据包解析,异常的断开处理,以外的通信内容等等等等。众多的地方都可能成为socket新手开发的绊脚石。甚至我有个巨大的bug,对外表现为句柄泄露,GPS服务器连续运行一周之后,单个进程的句柄数多达上百万,可我整整在其2年之后,被大牛点拨才知道自己错误原因。而这2年期间,就是我“人肉运维”硬抗过来的,每当到了下午5点,就有长达一个小时之久的“不稳定期”,这两年我几乎没有好好定点下班过。。。



原文地址: https://www.opengps.cn/Blog/View.aspx?id=375 文章的更新编辑依此链接为准。欢迎关注源站原创文章!

评论

暂无评论!

发表评论:

用于接收作者回复信息
点击更换验证码 - openGPS提示