Python 发送和接收RPC的函数名?
我用的是扭曲的。我设置了协议,以便发送RPC时执行Python 发送和接收RPC的函数名?,python,naming-conventions,twisted,rpc,Python,Naming Conventions,Twisted,Rpc,我用的是扭曲的。我设置了协议,以便发送RPC时执行protocol.send(“update\u status”,data)。为了记录我实现了哪些RPC,我对每个RPC进行了单独的函数调用,因此在本例中,我将调用REQUEST\u UPDATE\u STATUS(data)来发送该RPC。当协议接收到RPC时,将根据其名称调用函数,在本例中为CMD\u UPDATE\u STATUS 问题是REQUEST和CMD有点笨拙。我可能会将REQUEST误认为是命令的一部分,例如,REQUEST\u N
protocol.send(“update\u status”,data)
。为了记录我实现了哪些RPC,我对每个RPC进行了单独的函数调用,因此在本例中,我将调用REQUEST\u UPDATE\u STATUS(data)
来发送该RPC。当协议接收到RPC时,将根据其名称调用函数,在本例中为CMD\u UPDATE\u STATUS
问题是REQUEST
和CMD
有点笨拙。我可能会将REQUEST
误认为是命令的一部分,例如,REQUEST\u NEW\u DATA
,这将触发一个名为“NEW\u DATA”的RPC
。然而,REQUEST\u REQUEST\u NEW\u DATA
是愚蠢的
CMD
也很尴尬,因为请求发送新数据
会变成CMD\u发送新数据
,这有点尴尬
有什么提示吗?第一个提示:使用PB。。。它设计得很好,而且确实做到了这一点
第二个提示:如果第一个提示对你不起作用,就按照PB的方法做。在客户端,“callRemote(“foo_func”)”要求服务器调用服务器对象上的“foo_func”函数。然后,服务器将使用“getattr(server_obj,“remote_”+“foo_func”)来查找远程方法。如果该方法存在,则调用它。否则将返回一个错误。这个设计的好处是它完全不需要你的要求。。。命令。。。常量。PB表示透视代理-嗯,我已经可以这样做了。。而不是
protocol.send
我做protocol.callRemote
,而不是CMD\u send\u NEW\u DATA
我有remote\u sendNewData
或remote\u sendNewData
。我想我可能已经基本实现了PB。我建议您通读透视代理文档。任何在Python中实现RPC的人都将受益于对PB设计的理解,因为它包含了几种常见问题的优雅解决方案。轻量级AMP协议(也在twisted中)是另一个很好的背景源。