2
如何使用我的zerorpc服務器維護不同的會話或本地狀態?例如(如下),如果我有多個客戶端,後續客戶端將覆蓋模型狀態。我想過每個客戶端都有一個ID,RPC邏輯會試圖以這種方式分離變量,但是tbis似乎很混亂,一旦客戶端斷開連接,我將如何清除舊狀態/變量?與zerorpc保持會話
服務器
import zerorpc
import FileLoader
class MyRPC(object):
def load(self, myFile):
self.model = FileLoader.load(myFile)
def getModelName(self):
return self.model.name
s = zerorpc.Server(MyRPC())
s.bind("tcp://0.0.0.0:4242")
s.run()
客戶端1
import zerorpc
c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")
c.load("file1")
print c.getModelName()
客戶端2
import zerorpc
c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")
c.load("file2") # AAAHH! The previously loaded model gets overwritten here!
print c.getModelName()
我真的希望這個問題得到了妥善的回答。似乎沒有簡單的方法來訪問底層的zeromq會話,這可能有助於維護每個會話的附加狀態。也許好的會話令牌將不得不完成這項工作。 –