今天介绍最后一部分,protoc.py模块,
class LiberateProtocol(protocol.Protocol): 派生于twisted.internet .protocol 实际协议
根据twisted提供的说明,protocol是最基础的面向数据流的协议,任何服务器或客户端的协议都得继承于此类。
也是发送和接受数据的底层实现。
def connectionMade(self): 连接建立处理
def connectionLost(self,reason): 连接断开处理
def safeToWriteData(self,data,command): 线程安全的向客户端发送数据
data: str 要向客户端写的数据
command: str 分布式客户端获取的结果
def dataHandleCoroutine(self): 数据处理协程
def dataReceived(self, data): 数据到达处理
data: str 客户端传送过来的数据
class LiberateFactory(protocol.ServerFactory): 协议工厂
数据加解包,还有ConnectionManager都在里面
def setDataProtocl(self,dataprotocl): 设置数据打包协议
def doConnectionMade(self,conn): 当连接建立时的处理
def doConnectionLost(self,conn): 连接断开时的处理
def addServiceChannel(self,service): 添加服务通道
def doDataReceived(self,conn,commandID,data): 数据到达时的处理
def produceResult(self,command,response): 产生客户端需要的最终结果
response: str 分布式客户端获取的结果,会通过DataPackProtoc.pack来打包数据
def loseConnection(self,connID): 主动端口与客户端的连接
def pushObject(self,topicID , msg, sendList): 服务端向客户端推消息
topicID: int 消息的主题id号
msg: 消息的类容,protobuf结构类型
sendList: 推向的目标列表(客户端id 列表)