使用Twisted建立你的服务器
2010-09-22 11:15:34 来源:WEB开发网请求和实例化的顺序是reactor、factory、protocol。但是真实的开发顺序返回是倒过来的,因为你可能最初始得到的需求是要用什么协议,在设计协义时才能了解需要哪些持久数据和在所有的用户请求是需要共享的内容,以及初始化时所需要完成的事务,最终你才能依据你要应用的平台来考虑优化的方法。我们先来看看如何完成一个自己的协议开发以适用于twisted框架。
理解protocol的工作
twisted的protocol是通过异步处理方式来处理数据的。这就意味着protocol会通过事件来进行网络数据的处理,并且在处理中不会进行任何等待。这是一个最简单的Echo协议的代码:
Toggle line numbers
1 from twisted.internet.protocol import Protocol
2
3 class Echo(Protocol):
4
5 def dataReceived(self, data):
6 self.transport.write(data)
echo是一个非常简单的协议,它所做的事就是将客户机发过来的数据完整的反回给客户端。这里它没有响应所有的方法,但是也是一个可以使用并且运行的协议。下面的代码响应了另一个事件:
Toggle line numbers
1 from twisted.internet.protocol import Protocol
2
3 class HelloHD(Protocol):
4
5 def connectionMade(self):
6 self.transport.write("Hello This is HD's Test protocolrn")
7 self.transport.loseConnection()
更多精彩
赞助商链接