[英]Client/Server role reversal with SimpleXMLRPCServer in Python
我正在做一個項目,目的是將各種客戶端計算機上的一組方法公開到服務器,以進行信息收集和自動化。 我目前正在使用Python,SimpleXMLRPCServer似乎在本地網絡上運行良好,該網絡我知道客戶端計算機的地址,並且沒有NAT或防火牆。
問題是客戶端/服務器模型對於我想做的事情是倒向的。 我想讓服務器監聽客戶端的連接,而不是讓RPC服務器在客戶端計算機上運行,而是向軟件客戶端公開服務,然后再將客戶端連接到服務器並向服務器公開服務。
我曾考慮過隧道,使用SSH或VPN進行遠程端口轉發,但這些選項無法很好地擴展,並且會帶來比我想要的更多的開銷和復雜性。
我在想我可以編寫服務器和客戶端來逆轉模型,但是如果它已經存在,我不想重新發明輪子。 在我看來,這將是一個足夠普遍的問題,因此已經有解決方案。
我也只是想盡一切辦法使用Python和網絡服務,因此可能是我完全問錯了一個問題。
您想要的可能是WAMP路由的RPC 。 它似乎可以解決您的問題,一旦您習慣了它就非常方便。
想法是將WAMP路由器(比方說)放在雲中,並且RPC調用方和RPC被調用方都是與路由器具有出站連接的客戶端。
我還使用VPN通過Internet將IoT設備連接在一起,但是切換到此路由器模型確實簡化了事情,並且擴展性很好。
順便說一下,WAMP是用不同的語言 (包括Python)實現的。
也許Pyro可以使用? 它允許在Python中使用多種形式的分布式計算。 您的要求不是很清楚,因此很難說這是否對您有用,但是我建議您看一下Pyro的文檔或許多示例,看看是否有與您想要做的事情匹配的事情。
Pyro消除了大多數網絡復雜性,您只需在(遠程)python對象上調用一個方法即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.