使用QT开发即时通信IM的感慨......

时间:2022-05-31 03:26:53
使用QT开发即时通信IM的感慨......
先上一个基本的界面,这个界面还差一些修正就可以了!
在开发IM的过程中,遇到了不少问题,幸好学习QT有一年多了,不然很多问题都不知道怎么解决!
在开发程序的过程中,最大的感慨就是有时候遇到问题,经常百度google好久都没有找到答案的事!
QT的用户还是不少的,至少很多问题都能找到答案,加上还有文档和电子书,学习起来还是相对好很多的!
不过boost的asio就没那么好学了,当然asio也不是很难! asio也有文档,但是对于不怎么会英文的人来说,真的太痛苦了!
现在我在开发IM的后台,在网络通信这块卡了好久!开始的时候,想用用ACE,结果学来学去学得头都大了,
于是转向libevent,后来又发现boost下的asio网络库,于是就选用asiob ,asio相对来说还是不错的,不过就是要学习的细节还有不少!(目前最担心的是出了问题,怕自己没能力解决!)
相对来说,另一个东东就简单多了,那就是Zeromq,不过这个东东不兼容tcp/udp协议,真的很可惜!
现在我做法是,客户端:QT开发界面,asio做通信层,sqlite做本地数据库,cryptopp用来加密解密数据!
服务端:asio做通信层,mysql为数据库,cryptopp用来加密解密数据,由于后端要做分布+集群,所以zeromq可以考虑用一下!
如果对相关技术有兴趣或者正在从事相关工作的朋友,欢迎一起交流下!
如果你有QT相关的问题,可以回贴提问,我可以解决的,我尽量回答.......
当然更欢迎大家加我QQ群一起交流下!
云计算交流QQ群: 194268309
网络编程QQ群: 49184341
QT/C/C++交流QQ群: 232311477
这几个群都有不少人了,欢迎大家加群共同交流下!

13 个解决方案

#1


以前有一个叫Linq的 基于QT做的xmpp客户端 风格类似老版本的MSN
zeromq没用过 是zero message queue?

#2


PS 
libevent还是很强大的
asio的优点在于文档详细

#3


ICE怎么样?

#4


说句额外的 我觉得c++不适合做分布式开发
或者说用C/C++做分布式开发的成本比较低
目前很多做云的貌似 都是业务用python管理 底层一些关乎性能的地方用c++
做IM的可能erLang这样的面向并发的编程更合适

#5


打错了 
是用C++开发成本比较高

#6


支持楼主,挺好,值得学习。

#7


引用 1 楼 openXMPP 的回复:
以前有一个叫Linq的 基于QT做的xmpp客户端 风格类似老版本的MSN
zeromq没用过 是zero message queue?

客户端开发倒不是太难,而且花时间去看别人的代码,都有可以自己开发一个了!
zeromq.org 楼主有时间可以了解下,真的很不错


引用 2 楼 openXMPP 的回复:
PS 
libevent还是很强大的
asio的优点在于文档详细


我非常认同,后期有时间,有可能把asio换下来,用libevent......

#8


引用 3 楼 fsx92 的回复:
ICE怎么样?

ICE没用过,不知道怎么样,但是我学过ACE,真的相当不错,学习可以,但是用在实际项目中,对我来说难以驾驭.....

引用 4 楼 openXMPP 的回复:
说句额外的 我觉得c++不适合做分布式开发
或者说用C/C++做分布式开发的成本比较低
目前很多做云的貌似 都是业务用python管理 底层一些关乎性能的地方用c++
做IM的可能erLang这样的面向并发的编程更合适

非常同意,C/C++的开发成本有点高,python做业务真的是很多人的做法,不过怎么说呢,对python不感冒啊!
以后有可能用到这些脚本语言,但是现在还没用到,暂时不考虑......呵呵...

#9


现在看到这帖子,表示 lz说的客户端和服务端的主要涉及 跟我现在做的差不多,不过限制性能的部分比如:数据拷贝,内存管理,数据同步,上下文切换。这四个部分搞好了,就剩下具体的业务逻辑了,另外数据库的设计应该也很重要吧,表示还木有设计过数据库, 使用QT开发即时通信IM的感慨......

#10


大哥我现在 写毕业设计 毫无头绪 不知道 你能把 这个设计 发给我吗? 2517620732@qq.com

#11


引用 10 楼 z449777044 的回复:
大哥我现在 写毕业设计 毫无头绪 不知道 你能把 这个设计 发给我吗? 2517620732@qq.com


这位大哥同求啊,我也是毕业设计........383969884@qq.com,

#12


也发源代码到我的邮箱857024709@qq.com

#13


还在吗?通信协议用的哪个XMPP还是SIMPLE,还是自己的协议?

#1


以前有一个叫Linq的 基于QT做的xmpp客户端 风格类似老版本的MSN
zeromq没用过 是zero message queue?

#2


PS 
libevent还是很强大的
asio的优点在于文档详细

#3


ICE怎么样?

#4


说句额外的 我觉得c++不适合做分布式开发
或者说用C/C++做分布式开发的成本比较低
目前很多做云的貌似 都是业务用python管理 底层一些关乎性能的地方用c++
做IM的可能erLang这样的面向并发的编程更合适

#5


打错了 
是用C++开发成本比较高

#6


支持楼主,挺好,值得学习。

#7


引用 1 楼 openXMPP 的回复:
以前有一个叫Linq的 基于QT做的xmpp客户端 风格类似老版本的MSN
zeromq没用过 是zero message queue?

客户端开发倒不是太难,而且花时间去看别人的代码,都有可以自己开发一个了!
zeromq.org 楼主有时间可以了解下,真的很不错


引用 2 楼 openXMPP 的回复:
PS 
libevent还是很强大的
asio的优点在于文档详细


我非常认同,后期有时间,有可能把asio换下来,用libevent......

#8


引用 3 楼 fsx92 的回复:
ICE怎么样?

ICE没用过,不知道怎么样,但是我学过ACE,真的相当不错,学习可以,但是用在实际项目中,对我来说难以驾驭.....

引用 4 楼 openXMPP 的回复:
说句额外的 我觉得c++不适合做分布式开发
或者说用C/C++做分布式开发的成本比较低
目前很多做云的貌似 都是业务用python管理 底层一些关乎性能的地方用c++
做IM的可能erLang这样的面向并发的编程更合适

非常同意,C/C++的开发成本有点高,python做业务真的是很多人的做法,不过怎么说呢,对python不感冒啊!
以后有可能用到这些脚本语言,但是现在还没用到,暂时不考虑......呵呵...

#9


现在看到这帖子,表示 lz说的客户端和服务端的主要涉及 跟我现在做的差不多,不过限制性能的部分比如:数据拷贝,内存管理,数据同步,上下文切换。这四个部分搞好了,就剩下具体的业务逻辑了,另外数据库的设计应该也很重要吧,表示还木有设计过数据库, 使用QT开发即时通信IM的感慨......

#10


大哥我现在 写毕业设计 毫无头绪 不知道 你能把 这个设计 发给我吗? 2517620732@qq.com

#11


引用 10 楼 z449777044 的回复:
大哥我现在 写毕业设计 毫无头绪 不知道 你能把 这个设计 发给我吗? 2517620732@qq.com


这位大哥同求啊,我也是毕业设计........383969884@qq.com,

#12


也发源代码到我的邮箱857024709@qq.com

#13


还在吗?通信协议用的哪个XMPP还是SIMPLE,还是自己的协议?