大家来讨论一下即时通讯客户端的架构设计

时间:2022-03-11 19:39:31
如果我有现成的通讯协议,比如jabber,
我也使用现成的服务器,如openfire,
我想实现的只是客户端。
那么客户端的设计可以怎么分?
比如界面和通讯分离?
本地数据的保存,系统平台的可扩展性等等。
大家是怎么看客户端的架构设计的?
一起讨论讨论

7 个解决方案

#1


面对同样的需求,可以有多种框架。
看你最终需求是如何的,比如哪些模块是相对稳定不变的,哪些模块是经常会发生变化的。
我经常把易变动的部分封装在一个模块中,同时各模块与层次尽量解耦,还要考虑不同模块的可复用性。
我的设计思路是,满足“今天”的需求,考虑“明天”的需求,不要管“后天”的需求。不然,过度设计,会带来成本,同时使系统的灵活性大大减弱。到了“后天”之后,再考虑得构。

#2


可以参考pidgin

#3


界面和通讯分离,就是减少耦合,把界面和通讯做成各自独立的模块,两者之间通过一些定义的接口互相交换数据等。
服务器端尽量是各个客户端保持独立,客户端的增加,减少不会影响其他客户端

#4


lz可以具体研究下QQ。

#5


大家来讨论一下即时通讯客户端的架构设计

#6


一般情况应该这样
满足“今天”的需求,考虑“明天”的需求,不管“后天”的需求

#7


学习
顶一下

#1


面对同样的需求,可以有多种框架。
看你最终需求是如何的,比如哪些模块是相对稳定不变的,哪些模块是经常会发生变化的。
我经常把易变动的部分封装在一个模块中,同时各模块与层次尽量解耦,还要考虑不同模块的可复用性。
我的设计思路是,满足“今天”的需求,考虑“明天”的需求,不要管“后天”的需求。不然,过度设计,会带来成本,同时使系统的灵活性大大减弱。到了“后天”之后,再考虑得构。

#2


可以参考pidgin

#3


界面和通讯分离,就是减少耦合,把界面和通讯做成各自独立的模块,两者之间通过一些定义的接口互相交换数据等。
服务器端尽量是各个客户端保持独立,客户端的增加,减少不会影响其他客户端

#4


lz可以具体研究下QQ。

#5


大家来讨论一下即时通讯客户端的架构设计

#6


一般情况应该这样
满足“今天”的需求,考虑“明天”的需求,不管“后天”的需求

#7


学习
顶一下