|
|
发表于 2006-2-16 11:38:12
|
显示全部楼层
Post by poppyer
to 88djy:
其实现在几个不用的qq软件都有不同的针对性. lumaQQ用java优点是跨平台. eva的优点是用c++, 速度快. 这两个都以功能为先的. 适合对功能要求比较高的用户. openq的优点在于gaim的多协议, 适合像我这样不想同时运行多个软件但又想同时上msn, qq, gtalk, yahoo, icq, irc的人 (哈哈, 不可否认我比较变态), 我对功能的要求倒是不高的, 能稳定的进行文字聊天就好.
我写openq的patch给gaim2.0完全是我自己的关系, 因为我想用它, 呵呵. 后来我把代码放出来, 起因是我有朋友看见我用gaim可以同时上这么多东东, 他们也很想用. 我就想既然写了, 贡献出来给想用的人用一用也是好事一件. 特别是前几天qq强迫升级协议, 这么多人跑出来说openq不能用了, 可见openq还是很有一些人喜欢的 (跟我一样变态? 哈哈, 说笑而已, 别打我)
我想以后我也没什么时间做qq的开发的, 别对我抱太大希望. 前面也说了, 我的要求很低的, 现在openq的功能足够了, 关键是稳定性还不行. 我最多也就是发现什么bug自己改一改而已
多谢poppyer,我们都是gaim的忠实使用者。
另外openq一直以来在我这里使用都有一个问题,就是使用了一段时间以后,会非常频繁的去update buddy list,结果导致cpu被大量占用,gaim就会几乎不可用了。我不知道协议内部的原因是什么,简单的写了一个绕过这个bug的补丁,不知道你是否有碰到相同的问题。我将绕过去的补丁贴在这里,请你查查根本原因。
- diff -urN n_openq/src/buddy_list.c OpenQ/src/buddy_list.c
- --- n_openq/src/buddy_list.c 2006-01-24 18:23:06.000000000 +0800
- +++ OpenQ/src/buddy_list.c 2006-02-14 22:38:23.000000000 +0800
- @@ -56,6 +56,8 @@
- guint8 ending; //0x00
- } qq_friends_online_entry;
- +int update_body_time = 0;
- +
- extern void // defined in qq_buddy_status.c
- _qq_buddy_status_dump_unclear(qq_buddy_status * s);
- @@ -241,8 +243,12 @@
- if (position != QQ_FRIENDS_ONLINE_POSITION_END) {
- gaim_debug(GAIM_DEBUG_INFO, "QQ", "Has more online buddies, position from %d", position);
- -
- - qq_send_packet_get_buddies_online(gc, position);
- + update_body_time++;
- + if(update_body_time == 200)
- + {
- + qq_send_packet_get_buddies_online(gc, position);
- + update_body_time = 0;
- + }
- }
- else
- qq_refresh_all_buddy_status(gc);
复制代码 |
|