(轉)Hessian(C#)介紹及使用說明

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   使用   

什麼是Hessian?

     Hessian是Caucho開發的一種二進位Web Service協議。支援目前所有流行的開發平台。

 

Hessia能幹什麼?

     hessian用來實現web服務。

 

Hessia有什麼優點?

     Hessian協議和web service常用的SOAP協議類似,也是將協議報文封裝在HTTP封包中,通過HTTP通道傳輸的。因此Hessian協議具有與SOAP協議同樣的 優點,即傳輸不受防火牆的限制(防火牆通常不限制HTTP通道)。Hessian協議的優點在於:它採用二進位編碼,因此傳輸資料量比SOAP協議要小得 多。實踐證明,傳輸同樣的對象,Hessian協議傳輸的資料量比SOAP協議低一個數量級。因此在複雜網路環境下的分布式應用使用Hessian協議可 以獲得更好的效能和可靠性。

 

Hessian怎麼使用?

     Hessian使用非常簡單,首先去Hessian官方網站下載http://hessian.caucho.com/ ,Hessian支援目前流行的所有開發語言,選擇NET C#版本下載。hessian是開源項目,他們的開源實現採用Apache許可。下載完後我們首先來建立伺服器端:

建立一個VS的Web項目,刪除預設的.aspx檔案。引用Hessiancsharp.dll,建立一個介面IService.cs代碼如下:

 

using System;using System.Collections;namespace HessianService{   public interface IService   {       string Hello(string name);   }}

 

 

就一個方法Hello沒什麼可說的。接下來我們實現這個介面Service.cs:

 

using System;using System.Collections;using hessiancsharp.server;namespace HessianService{   public class Service:CHessianHandler, IService   {        IService 成員#region IService 成員        public string Hello(string name)       {           return "Hello " + name;       }        #endregion   }}

 

 

 

注意服務實現要繼承CHessianHandler這個類,這個類繼承實現了IHttpHandler。

OK,代碼已經寫完了夠簡單吧?不過現在這個服務還不能向外提供服務,我們還要對它進行一下小小的配置。

開啟Web.config 在<System.web>中添加如下代碼:

<webServices>            <protocols>                <remove name="HttpPost"/>                <remove name="HttpGet"/>            </protocols>        </webServices>        <httpHandlers>            <add verb="*" path="*.hessian" type="HessianService.Service,HessianWebService" />        </httpHandlers>

 

 

 主要是配置IHttpHandler 很簡單我就不羅嗦了。

OK 到此為之我們伺服器端大功告成!

 

 

下邊開始用戶端:

建立控制台項目Client,將剛才伺服器端的介面IService拷貝過來。

修改Program.cs:

 

using System;using System.Collections;using hessiancsharp.client;using HessianService; namespace Client {class ClientMain {       [STAThread]    static void Main(string[] args)      {           CHessianProxyFactory factory = new   CHessianProxyFactory("userName","password");                                  string url = "http://localhost:36955/hessiantest.hessian";//修改為你的server端地址          IService test = (IService)factory.Create(typeof(IService), url);          string result= test.Hello("飛魚");          Console.WriteLine(result);          Console.ReadLine();     }   }}    

 

OK!用戶端完成。

在用戶端通過CHessianProxyFactory和IService來建立一個服務的代理。然後你就可以像用本機物件一樣用它了。夠簡單吧?

 

運行伺服器端,修改url為你的伺服器端地址,運行用戶端。不出意外你就可以看到"Hello 飛魚"了。

 

通過我的試用Hessian確實不錯,開發簡單,調用也簡單,效率也比Webservice提高了不少,具體我沒有測試,感興趣的朋友可以測一下。 另外最大的特點是跨平台性很好,在一些返回實體的操作中,如果服務端和用戶端不是一種平台也沒有關係只要命名空間、屬性名稱字一樣就可以調用很方便。

 

 

 

網上關於HessianCSharp的資料很少倒是JAVA的很多,不過配置方面相差很遠,我一開始也是在Google上狂搜了一個上午才弄到一點資料,共用出來希望有用到的朋友少走一些彎路。另外給大家一個關於HessianCSharp的論壇:http://www.hessiancsharp.org/forum/ 

 

代碼:下載源碼 

 

補充:部署到IIS的時候需要主意IIS需要進行重寫配置 在網站或虛擬目錄下右鍵-->主目錄--->配置 插入萬用字元"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" 去掉"確認檔案是否存在選項"否則不能調用,點擊確定就可以了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.