linux下使用QQ解决方案的选择

上网、浏览、聊天、下载等
回复
coolkey
帖子: 5
注册时间: 2008-06-26 9:52

linux下使用QQ解决方案的选择

#1

帖子 coolkey » 2008-07-03 16:34

上次说到本F搞定了linux下的QQ,其实在linux下使用QQ至少有五种方法(茴香豆的五种写法?^_^)。那只是其中一种,今天就总结一下这段时间本F关于linux下使用QQ的心得。


大概02年左右,当时本F玩redhat时就用过Gaim+libqq插件的形式来登录QQ。一个小小的工具可以在一个软件界面上同时登录多种即时通讯工具,比如ICQ/MSN/QQ等等。。。。感觉还是不错的。那时候QQ貌似还没什么群的概念,自定义表情好像也没什么印象——可能也还没有吧(不记得了,呵呵)。所以当时能登录QQ服务器进行聊天也就达到了其应有的效果。


在这次玩ubuntu的过程中,虽然本F对QQ这个软件本身很是不屑——管理混乱、烦人的无所不在的广告、打压珊蝴虫事件、最恶心的是前年无缘无故收回了我一个用了好多年的7位靓号——但它毕竟是中国市场占有率最高的IM工具,很多朋友都是只能用QQ联系,没办法只好再想办法搞定它,金刚的滋味不好受啊~


对于解决QQ联系的方案选择上,本F是走了一点弯路的,当然也获得了一些经验。


想要登录QQ,有两个大方向可以走:

第一类是使用linux下的软件来直接登录QQ服务器。

这类软件有lumaqq、eva、pidgin、Gaim等等,这些软件都属于第三方工具,属于自己分析QQ的协议来仿造QQ客户端实现QQ的部分功能。这类工具的优点是短小精悍,多为多功能登录工具,不但可以登录 QQ,还可以登录MSN、ICQ等其他在线聊天服务器。缺点是毕竟不是原厂出品的客户端,对QQ这种非公开的协议分析不可能完全精确,很多功能无法完美实现,而且QQ经常在升级的时候更改一些协议细节,分析这些细节的变更又需要一定的时间,使得linux下的客户端软件常常有滞后性(经常TMD不能登录)。
下面这张是本F用pidgin登录的QQ的截图:
(见图 pidginqq.jpeg)

可以看到,这类工具可以实现登录QQ、和Q友文字交流、发部分表情以及一定的群聊功能。(pidgin还可以实现文件传输功能。)但是远程协助、视频聊天等高级功能就爱莫能助了,其实我这个QQ不止加入了一个群,但是这里只显示一个名称为 NULL 的群,明显对群功能的支持还差强人意。



第二类是直接使用腾讯自己的客户端登录QQ服务器。

由于腾讯至今没有发布For Linux的QQ客户端,所以我们只有虚拟出win环境来运行腾讯的QQ客户端。

这里又有了两种选择:

1、使用wine模拟win32 API环境来运行QQ

Wine运行在Linux的X上,它提供了Windows API函数接口,它是一个Windows兼容层,这个层提供了一个从 Windows源与UNIX的开发工具包(Winelib)的接口,另外它还有程序加载器的功能,其允许不用任何修改Windows 3.1/95/NT的二进制文件,简单的说,wine是一个Linux下Windows应用程序模拟器。其模拟出一个C盘,里面有windows文件夹、Program Files文件夹等。windows下的程序就运行在这样一个模拟的windows环境下。



本F上次文中提到的“QQ完美运行”就是基于wine的解决方案。它的优点显而易见,由于是运行腾讯原厂客户端,通讯协议上不会有任何问题。所以,无论是界面还是功能,都和在windows下没有两样。更加令人兴奋的时,在这种解决方案下,由于QQ仅仅是运行在wine之上,实际上其窗口还是被linux X所控制。所以每个QQ窗口都可以拥有所有linux下设置的眩目特效。想要抓图show给朋友的linuxer有福了!

眩目的窗口特效!
(见图 wineqq.jpeg)


然而,wine解决方案也不是十全十美的,抛开安装设置的繁琐步骤不说。由于wine本身还不是完美的。所以在这些天的使用中,我发现QQ运行并不是非常稳定。进程崩溃时有发生。这种“兼容性故障”,到底归咎于QQ还是wine或是linux本身,目前倒是无法考证^_^。值得一提的是,在这种运行方式下,各种QQ外挂都将失效。



2、使用虚拟机运行QQ

这种解决方案也是本F目前使用的,至于用vmware还是virtualbox倒并不是很重要了(本F是两个都装了,最后选择了VB,我喜欢它的无缝模式,虽然我平时只是最大化VB窗口来使用,但是无缝模式用来show还是很cool的,虽然wmware也有类似的功能,但VB的小巧和速度都使我倾心),对于今天的主题——登录QQ来说,它们都是一样的,虚拟出一台电脑的硬件设备,装上操作系统(win2k or winxp。。。)配置成NAT上网方式,想运行什么就运行什么。



在这样的环境下,没什么好说的,什么都和windows下一样——根本完全就是在windows中嘛!什么QQ外挂补丁,本来能用的现在就肯定一样有效。要说有什么缺点的话,好吧。由于QQ现在运行在一个windows容器中,linux X 对其没有直接控制权,各种眩目的特效不能生效于QQ窗口了。另外,正因为QQ是运行在windows容器中,它的截图功能只能截取虚拟机中的屏幕(超郁闷!!)它是无法直接去linux区域抓图的!当然,如果VB中的windows崩溃了,或者VBirtualBox自身进程挂起了,QQ也就和它们一起同归于尽啦~



虚拟机中的QQ——和你用的有什么区别??
(见图 vbqq.jpeg)




总结:



鉴于QQ是一个使用封闭协议的即时通讯软件,又没有官方的linux版。

所以不推荐使用那些linux下的第三方软件来登录QQ,毕竟他们的所实现的功能实在不敢恭维,而且又随时有登录不上的风险(腾讯一个版本升级,通讯协议一改就有此可能)——当然你一定要这么做,我没意见——管我鸟事,老子是来打酱油的!



至于wine方案和虚拟机方案之间的选择,建议linux新手直接使用虚拟机。wine配置繁琐,且并不稳定。当然,像我一样两者都用也是一个选择。总之,虚拟机方式运行QQ是最实用的。(我真的喜欢wine下QQ所继承的linux X特效)



最后说一下,我在VirtualBox的windows里装了uucall(MD用wine都搞不定的东西,本F还充了几百大洋呢,不能不用啊)、飞信(这玩意在linux下用pidgin也能登录,当然需要下载插件并配置,但我既然都装了虚拟机,为什么不直接用它呢)、pcanywhere(没找到合适的linux替代品)。



本来这篇文档是在linux下的firefox浏览器中在线写的,但是。。。新浪博客的上传图片功能居然在firefox中出错无法上传!只好用VB中的IE来发了。想起来还真是方便啊。看来我物理硬盘里的win2k server估计在可预见的未来时间内都要保持失业的状态咯。
附件
pidginqq.jpeg
wineqq.jpeg
vbqq.jpeg
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11

#2

帖子 yuhongchun » 2008-07-04 0:52

这个不顶如何了得,暂时用的还是EVA,虚拟机我主要是用于联网实验,一般四到六个就够了。
头像
sfbi
帖子: 796
注册时间: 2007-09-06 11:41
来自: Bergen

#3

帖子 sfbi » 2008-07-04 4:15

“本F”是啥意思?
coolkey
帖子: 5
注册时间: 2008-06-26 9:52

#4

帖子 coolkey » 2008-07-04 13:22

就是本人。。。。另外,本F酱油打好了,目前在做俯卧撑。。。
回复