使用SOAP RPC 訊息

2021-05-05 04:23:56 字數 1706 閱讀 6599

soap最初的設計目標之一就是提供乙個開放和標準的方式,以便通知諸如xml和http的interent技術來使用rpc

要使用rpc所需的請求/應答行為的執行需要兩個soap訊息:乙個用於請求,乙個用於響應,可以用一下方式對乙個將兩個書相加的簡單的c#函式的請求進行編碼:

public int add(int x,int y)

add方法接受兩個整數作為輸入引數,並將結果作為返回引數傳回給客戶端。輸入引數必須在請求訊息的正文中打包,這樣才能將它們傳送到目標應用程式。通過將引數用一種類似於結構的格式進行打包可實現這一點,下面是add(1,2)的結果的請求訊息:

2 其中x和y的順序是不能顛倒的,將y放在x前面則y無效,等於只傳遞了乙個x。

我們已經建立了乙個格式正確的請求資訊,現在來看看有遠端應用程式生成的響應;

遠端應用程式返回的請求訊息包含add方法的結果,返回引數再次以結構的格式編碼進soap訊息的正文中。正文中的子元素命名約定是在方法的名稱上附加result。第乙個(在本例中是唯一的)引數包含方法呼叫的返回引數。元素是result。

如果有不止乙個引數被返回給客戶端又怎麼樣呢?

public int add(int x,int y,out int sum)

呼叫add(1,2)會生成如下的soap訊息:

注意第三個引數sum並沒有被編碼。因為sum是作為輸出引數進行宣告的,沒有理由要將它的初始化值傳送給遠端應用程式。

響應訊息包含兩個引數的值,返回引數必須總是第乙個列出來。

使用訊息框

可以使用警告 確認和提示訊息框來獲得使用者的輸入。這些訊息框是 window物件的介面方法。由於 window 物件位於物件層次的頂層,因此實際應用中不必使用這些訊息框的全名 例如 window.alert 不過採用全名是乙個好注意,這樣有助於您記住這些訊息框屬於哪個物件。alert方法有乙個引數,...

如何使用訊息佇列的事務訊息

發訊息 過程,往往是為通知另外乙個系統更新資料,mq的 事務 主要解決訊息生產者和訊息消費者的資料一致性問題。先把商品加到購物車 然後幾件商品一起下單 最後支付 完成購物流程,就可以愉快地等待收貨 該過程中有個需用mq。訂單系統建立訂單後,發訊息給購物車模組,將已下單商品從購物車刪除。從購物車刪除已...

使用WM COPYDATA訊息通訊

對於少量資料可以用wm copydata方便地實現通訊。由於sendmessage 是阻塞的,只有接收方響應了訊息,sendmessage 才能返回,否則一直阻塞。所以,對於大量資料來說,用sendmessage 就容易造成視窗假死。在win32中,wm copydata訊息主要目的是允許在程序間傳...