Hessian là giao thức truyền thông tốt hơn nhiều so với XML. Là một định dạng nhị phân, nó thậm chí còn nhỏ gọn hơn và với phân tích cú pháp định dạng nghiêm ngặt là nhiều hơn nhanh hơn.
Như một phần thưởng, đã có các khung công tác cho Java, .NET và PHP để trưng ra một dịch vụ web. Thật dễ dàng. Asume bạn có điều này C# giao diện:
public interface ITest {
public string getGreeting();
int addNumbers(int a, int b);
}
Sau đó thực hiện nó trên máy chủ sử dụng HessianC# là một snap:
public class CTest:CHessianHandler, ITest {
public string getGreeting() { return "Hello World!"; }
public int addNumbers(int a, int b) { return a + b; }
[STAThread]
private static void Main(string[] args) {
CWebServer web = new CWebServer(5667, "/test/test.hessian", typeof (CTest));
web.Paranoid = true;
web.AcceptClient("[\\d\\s]");
web.Run();
for (;;) {
if (Console.ReadLine() != "") {
web.Stop();
break;
}
}
}
}
Về phía iPhone C# giao diện cần phải được dịch ra tiếng một giao thức Objective-C :
@protocol ITest
-(NSString*)getGreeting;
-(int)addNumbers:(int)a :(int)b;
@end
Và sau đó sử dụng HessianKit để có được một proxy cho dịch vụ này gần như là dễ dàng:
id<ITest> proxy = [CWHessianConnection proxyWithURL:serviceURL
protocol:@protocol(ITest)];
NSLog(@"Greeting: %@", [proxy getGreeting]);
NSLog(@"The answer: %d", [proxy addNumbers:40 :2]);
Trong câu trả lời ngắn gọn này, tên phương thức không hoàn toàn là C# -ish, cũng không hẳn là Obj-C-ish. Điều này là do mặc định HessianKit sử dụng các quy ước đặt tên của Java. Điều này có thể được overriden trong HessianKit bằng cách cung cấp phương pháp, và gõ bản dịch tên. Vì vậy, cả hai C# và Obj-C bên trên kết nối cảm thấy 100% ở nhà.Ví dụ:
[CWHessianArchiver setClassName:@"com.mycompany.ITest"
forProtocol:@protocol(CWTest)];
[CWHessianArchiver setMethodName:@"AddNumbers"
forSelector:@selector(addInt:toInt:)];
Tôi có các dịch vụ WCF của riêng mình đang hoạt động, tôi không sử dụng xà phòng tho – Daniel
Tôi rất nhiệt tình với bạn, giao thức xà phòng quá lớn đối với Iphone – fyasar
Bro, liên kết bạn cung cấp không còn nữa. Đăng bài mới nếu bạn có. –