XMPP:Play with It
前面谈了最基本的理论,现在就从应用的角度入手来实际感受下 XMPP。
从服务器来看,开源的 XMPP 服务器软件有很多,这里以 Openfire 为例,具体的搭建过程就不细说了,其管理后台如下:
我们可以切换到“用户/组”标签下新建几个用户以方便之后的实验。如下图所示有两个测试账户 user1 和 user2:
现在让我们切换到用户角色。首先使用一个配套工具 Spark 来尝试一下。在登录界面解决输入之前的账户和服务器信息即可:
不过这里建议在设置中打开调试模式点击登录以后即可看到好友列表和调...
初识Twisted:事件驱动编程
最近在学习Twisted,在此归纳一些重要的概念和理念。
事件驱动编程(Event-Driven Programming)
Twisted是一个基于事件驱动的网络引擎。
在这种编程模式中,程序流程是由外部事件决定的。它的特性表现在一个事件循环以及采用回调来触发事件的相关动作。将此与其它两种常见模型进行比较应该会更益于理解,他们是单线程(同步)和多线程编程。
我们来看图说话。假如他们都需要处理三个任务,并且在进行I/O操作的时候均会发生阻塞。他们的表现形式将会如下图这样:
从左图可以看出,在单线程处理过程中,每个任务将会按顺序依次执行。当一个任务在处理...