• 页面

  • 功能

  • 标签

  • 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, 2008

    gloox已经放出了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, 2008

    gmlive很久没消息了吧。今天就来说说,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, 2008

    2007年过去了。我很怀念它。
    此消唱罢彼登场。荒天下之大缪的事,发生在别人身上,尚且能当一
    玩笑娱乐大家。发生在自己身上,则只能怨中国国情了。
    从 彭宇案和许霆案 可以看出,中国只有法官没有法律。
    那么2008年,中国的法官们又将给我们奉献怎样的经典案例哩,期待~