Archive for 01月, 2008
libjingle之创建一个应用程序(粗译文)
星期三, 01月 23rd, 2008近来在看libjingle的时候随手翻译了一些资料,下面是关于用 libjingle创建一个
应用程序的一些细节描述。
只是参考作用,细看请参看原文 . (我的英文不好,译出来的东西也语句不通)
一.登录服务器
http://code.google.com/apis/talk/libjingle/login.html
1.初始化 SSL ,如果需要的话。
2. 建信号线程。最简单的方案是创建一个 AutoThread 对象,它将获取当前操作系统
的线程并且在ThreadManager设置成当前线程。
3.从用户中获取登录信息。 使用XmppClientSettings将信息登进XMPP服务器,比如用户
名,密码和服务器地址。
4.创建一个XMPP 任务管理对象(task manager object).libjingle使用XmppPump,一个
辅助类,包装了XmppClient和处理登录进XMPP服务器,并且处理所有的XMPP任务(tasks
),例如发送和接收状态(presence)通知和登录进服务器。
4. 连接接收登录进度通知。连接上XmppPump对象的SignalStateChange信号。这个信号
将发送关于登录的进度的通知。当它发送STATE_OPEN状态时,你已经是登录进服务器了。
5. 登进服务器。 调用XmppPump::DoLogin来登录。例子代码会将Google Talk服务器设
置成XMPP服务器。你可以在buzz::XmppClientSettings更改其值,而buzz::XmppClientSettings将会传给 XmppPump::DoLogin. Dologin将要求一个运行中的信号线程;
Dologin在你调用信号线程Run之前会队列等待。
6. 调用信号线程的Run,以保证消息线程开始循环监听。或者,如果你有自己的方法令
程序长久地循环,你可以调用 Start 代替。
7. 监听成功或失败的消息。 如前所述,XmppPump 将发送 STATE_OPEN 当应用程序成功
登录。
8. 你将可以请求 STUN和 relay port信息,将它传给 PortAllocator对象。以便进行
下一环节的操作(Sending and Querying Presence)
一旦你已经登录,你将可以发送你的状态给服务器,并且为花名册注册状态通知,下一
节将细说。
二,发送和查询状态
http://code.google.com/apis/talk/libjingle/querying_presence.html
在登进XMPP服务器后,你的应用程序应该提交你的状态给服务器。并且请求好友状态信
息(buddy list)。服务器将回复这些信息给你(away,offline,and so on),例如当前
每个已经登录好友的JID。你可以使用这些JID和状态信息来发送连接请求。服务器将
持续发送状态通知直至你的连接结束。
libjingle 提供两个辅助的XmppTak对象来发送和请求状态:
PresenceOutTask —发送你的状态给服务器。
PresencePushTask — 监听从服务器发来的状态信息。 你将调用PresencePu
shTalk::Start来启动它。你必须连接上这个类的 SignalStatusUpdate 信号,使它能
在收到一个状态流时发出警报(指被通知的意思). 将发送给好友中每个收到状态的人。
为了运行上面这几个对象(类似其它任务), 你必须实例化他们,并且传递父对象的名字
进去(一个基于Task的对象–比如 XmppClient),填满它所需要的信息,使用它们的Start
方法来启动他们。
(重要: Task对象必须用Start这个方法来启动。虽然Task对象有其它额外的方法是你
想运行的(例如,Send),但这些方法只是特别的动作,Task只能在Start调用后才真正
工作。
下面信息描述了怎样发送和接收状态信息(presence):
1. 登录以取得状态信息通知。 实例化并启动 PresencePushTask ,连接上
OnStatusUpdate 信号。有些服务器在收到状态流(presence stanza)时会返回花名称状态
通知。 [...]
icalk的下一步计划
星期一, 01月 21st, 2008gloox已经放出了1.0alpha版,相信离1.0的正式版不远了。而libjingle我也掌握了一个大概,
心里对这个库也有了些信心。所以随之而来的工作是新版本的icalk的计划了。这将是一个激动
人心的版本,丰富的xmpp协议特性,支持gtalk的文件传输与语音功能。
但是这远非一项简单的工作,gloox库升级到1.0alpha中很多api起了变化。而libjingle库的构建
融入代码中也是件非常麻烦的事。我对于automake这类构建的恐惧更基于编程~~
各位,如果有兴趣有能力,请加入我们。一起完善这个激动人心的项目。
这其实也是一次学习的好机会,我的代码的大部分源码都有中文注释。
项目缺的不只是编程的人员,谁有好的图标风格设计的也请支援我们。
联系请发邮件列表
icalk项目的邮件列表是 https://groups.google.com/group/icalk
GMLive svn到180的状况
星期二, 01月 15th, 2008gmlive很久没消息了吧。今天就来说说,svn版本号已经到180了。
不过,也好像很久没变过了。呵呵。
wind生小孩去了嘛。而我前段时间也似乎迷失了(嗯,大家别管我,我经常这样)
yetist为gmlive加了一个插件。这个插件倒是很奇怪。昨晚上我才明白,这个
插件的作用是在totem上的。它把gmlive的mms列表加到了totem的列表里。这样,
只要打开totem就可以看mms列表的电视了。不过,似乎又和gmlive没啥关系了。呵呵。
而且加了这功能,gmlive却又多了一项对python编译的依赖。 希望能做成有选择性的。
而我和wind也没有再为gmlive添加新功能了。似乎之前的beta3版本修复一些bug的话,
可以放出正式版了吧。争取在年前修复一些bug吧。其它的还是慢慢来。
这不是一个人的战斗吧。
记念魏文华
星期五, 01月 11th, 2008有太多的人需要记念,有太多的事需要记住,2008年刚到,以后或许我们会忘记这件事情,故留文记念.
好人一路走好!
by老犁
手机
星期一, 01月 7th, 2008中午收到电话,吾妹说她在公交车的时候,被人割袋偷了手机了。
在前几个星期的时候,朋友小辟的手机才被人抢了。
看来最近在我身边经常发生的只有两件事,一是生儿子,二是抢手机。
小辟已然换了部新手机了。功能却仍然强大。什么视频啊和弦啊蓝牙啊
无线wifi啊摄像录影啊java游戏支持啊,能有的都有,一个不缺。
但是我对手机的定义还打电话。不喜欢让它做太多其它无聊的事情。
比较简单好些,事实上我不太喜欢这东西,整天带着它也是个累赘。
大概我是不喜欢号码型的东西的吧。
昨天经过电脑城,看到现在的mp4的功能也花哨起来了,也有许多带上
了摄像头。价格还便宜了很多。由此就突然想买个来玩玩。
手机就专门用来打电话,mp4则用来玩。随便一样被抢了,风险也没那么大
了。这样是不~
恭喜恭喜
星期一, 01月 7th, 2008虽说新历2008已然来临。但这仍然是我们中国人的猪年年尾。
wind在这一年不仅贡献了代码,今天还为世界贡献了一个儿子。生下来有7斤重哩。
果然健康活泼。 恭喜恭喜。wind啊,快拿张相到这里来张贴张贴啊。
而前天我姐也生了个大胖小子。可惜昨天去探的时候时间不对,还没见着这个外甥。
嗯,博客可以开个BB相片大竞赛了。呵呵。
2007年过去了。我很怀念它。
星期五, 01月 4th, 20082007年过去了。我很怀念它。
此消唱罢彼登场。荒天下之大缪的事,发生在别人身上,尚且能当一
玩笑娱乐大家。发生在自己身上,则只能怨中国国情了。
从 彭宇案和许霆案 可以看出,中国只有法官没有法律。
那么2008年,中国的法官们又将给我们奉献怎样的经典案例哩,期待~