xmlrpc的標準是xml+http的實現,但是在應用過程中發現基于http的協議必然造成客戶機每次rpc調用都要進行連接服務器,導致的開銷增大;還有一個問題在于服務端實現method的注冊回掉,而不像RMI那樣兩端都能注冊服務方法,如果客戶機也要增加回調method的話,也必須起xmlrpc的服務
xmlrpc-c-1.03.06 http://xmlrpc-c.sourceforge.net 一種xmlrpc的c語言的實現,通過觀看其代碼,發現他選擇abyss 作為自己的通信接口來提供http服務,由于是基于http的,如果作為服務通信接口的話就不太理想了,比如兩個系統要經常進行雙向通信,交互的頻率很高的話,會導致這種通信的開銷非常大,而且都是單向通信(一般服務端不能主動調用客戶端的rcp方法)。由于是單向通信,造成了比如 外部網絡無法穿透防火墻連接到內部主機的問題,更談不上進一步的xmlrpc調用。
所以我想基于xmlrpc-c的改造,替換掉abyss這個web服務器的通信接口,提供一種基于tcp的常連接的通信方法,使客戶機和服務器都能同時注冊自己的回調函數,然后通過兩者之間的tcp連接進行傳送xmlrp數據包。
xmlrpc-c-1.03.06 http://xmlrpc-c.sourceforge.net 一種xmlrpc的c語言的實現,通過觀看其代碼,發現他選擇abyss 作為自己的通信接口來提供http服務,由于是基于http的,如果作為服務通信接口的話就不太理想了,比如兩個系統要經常進行雙向通信,交互的頻率很高的話,會導致這種通信的開銷非常大,而且都是單向通信(一般服務端不能主動調用客戶端的rcp方法)。由于是單向通信,造成了比如 外部網絡無法穿透防火墻連接到內部主機的問題,更談不上進一步的xmlrpc調用。
所以我想基于xmlrpc-c的改造,替換掉abyss這個web服務器的通信接口,提供一種基于tcp的常連接的通信方法,使客戶機和服務器都能同時注冊自己的回調函數,然后通過兩者之間的tcp連接進行傳送xmlrp數據包。