用t-io从零写一个像微信的IM(03):网络框架选择

用t-io从零写一个像微信的IM(03):网络框架选择

网络框架的选择主要指服务器端,毕竟IM的技术门槛都在服务器端(这并不是说客户端不难,只是相对而言技术门槛不是那么高)

这里先给出结论,我们选择的是t-io,这里有一份《t-io技术白皮书》,可以参考一下

给出结论后,来说说为什么选择t-io。以IM的需求来说明为什么说选择t-io是个不错的思路

1. 既要支持socket又要支持websocket

既要支持socket又要支持websocket的网络框架很多,但是我们想的更多的是,这两个协议能相互适配和转换,目前市面上在框架层支持协议相互适配和转换的,只有t-io了

2. 可以方便地进行群组管理

IM中有大量的业务是针对群的操作,譬如对某个群发消息、建立群、解散群、离开群、将人踢出群… …t-io天然支持群组绑定和消息群发

3. 可以方便地进行用户管理

IM中对用户进行操作,是很常规的业务,譬如发消息给指定的用户、将用户踢出群、将用户加入群… …t-io天然支持用户绑定和发消息给用户

4. 稳定、高效

满足这一点的网络框架很多,除了t-io还有netty,但像mina就不建议使用了(毕竟历史太久了)

5. 易用、可驾驭

这一点,t-io基本完胜netty,仅代表个人能力特点表达的观点,不是说netty不易、难驾驭(还是有很多人喜欢netty的)

6. 支持集群

t-io内置了集群能力

6. 其它锦上添花的功能

心跳检测、半包粘包、集群、流量监控统计… …这些t-io都有现成的了

7. 结论

结论显而易见,我们选择了t-io

下集预告

用t-io从零写一个像微信的IM(04):IM协议设计

你可能感兴趣的:(用t-io从零写一个像微信的IM(03):网络框架选择)