簡體   English   中英

使用Python中的SimpleXMLRPCServer進行客戶端/服務器角色反轉

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM