標籤: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" 去掉"確認檔案是否存在選項"否則不能調用,點擊確定就可以了