Skip to main content
 首页 » 编程设计

python之将 session 支持添加到 'stateless' xml-rpc 应用程序

2025年05月04日8Terrylee

我必须创建一个 python(扭曲)应用程序,它通过 XML-RPC 接受来自客户端的连接,并执行可能需要多个步骤的操作。 xml-rpc 实现没有典型的 session 支持,所以我需要实现它。

我认为我需要的是某种类型的持久对象,它跟踪多步操作的进度,并为客户端提供一个 key ,它可以使用该 key 来识别它发起的操作、获取状态更新或发送命令(暂停/取消等)。

对我来说,一个合适的模型是“工作”;谷歌搜索“python 作业库”会产生预期的无用结果。

在我实现这个之前,有没有我可以使用的现有东西?

谢谢!

请您参考如下方法:

我想你可以在服务器中有一个持久对象,比如:

from twisted.web import xmlrpc, server 
 
class MultiStep(xmlrpc.XMLRPC): 
    def __init__(self) : 
        xmlrpc.XMLRPC.__init__(self) 
        self.db = {} 
    def getX(self, user, x): 
       self.db[user] = {'x' : x} 
       return 'OK' 
    def getY(self, user, y): 
       self.db[user]['y'] = y 
       return 'OK' 
    def plus(self,user) : 
       return self.db[user]['x'] + self.db[user]['y'] 
 
if __name__ == '__main__': 
    from twisted.internet import reactor 
    r = MultiStep() 
    reactor.listenTCP(6666, server.Site(r)) 
    reactor.run()