一个简单RPC框架是如何炼成的(V)

def request(self, req):# 全部简化处理,不考虑线程安全问题,不考虑异步# 先是将RPC消息发送到服务端,然后服务端就会处理,并将结果发回到客户端,,客户端这边接收处理结果。# self.remote.procRequest(req) // 删除self.conn.send(req)rsp = self.conn.recv()return rsp.result同样的,修改服务端收到request请求后的处理。首先反复调用connection.recv()方法读取客户端发过来的请求。当请求处理完成后,不再直接以函数返回的方式return,而是将rsp交给connection,由connection负责传输给client # def procRequest(self, req): 调整参数列表,不再需要reqdef procRequest(self):# 循环读取并处理收到的客户端请求while True:req = self.conn.recv()rsp = Response()rsp.id = req.idif req.command == 'sayHello':rsp.result = self.sayHello()elif req.command == 'whoAreYou':rsp.result = self.whoAreYou()else:raise Exception("unknown command")# return rsp # rsp也是通过connection最终传给client,而不是直接函数返回self.conn.send(rsp)

最后,列一下connection的初始化

而不去欣赏今天就开在我们窗口的玫瑰。

一个简单RPC框架是如何炼成的(V)

相关文章:

你感兴趣的文章:

标签云: