Hessian은 XML보다 훨씬 우수한 통신 프로토콜입니다. 바이너리 형식이기 때문에 더 작고 엄격한 형식 구문 분석을 사용하면 훨씬 더입니다.
보너스로 이미 웹 서비스를 노출하는 Java, .NET 및 PHP 용 프레임 워크가 있습니다. 정말 쉽습니다. 이 C#을 인터페이스가 Asume :
public interface ITest {
public string getGreeting();
int addNumbers(int a, int b);
}
그런 HessianC#를 사용하여 서버에 스냅을한다 구현 :는 C# 인터페이스는 오브젝티브 C 프로토콜로 변환 할 필요가 아이폰 측면에서
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;
}
}
}
}
을 :
@protocol ITest
-(NSString*)getGreeting;
-(int)addNumbers:(int)a :(int)b;
@end
그리고이 서비스에 대한 프록시를 얻기를 위해 HessianKit를 사용하는 것은 거의 간단하다
id<ITest> proxy = [CWHessianConnection proxyWithURL:serviceURL
protocol:@protocol(ITest)];
NSLog(@"Greeting: %@", [proxy getGreeting]);
NSLog(@"The answer: %d", [proxy addNumbers:40 :2]);
이 짧은 대답에서 메서드 이름은 C# -ish가 아니라 Obj-C-ish 중 하나입니다. 기본적으로 HessianKit은 Java의 명명 규칙을 사용하기 때문입니다. 메소드를 제공하고 이름 변환을 입력하여 HessianKit에서 재정의 할 수 있습니다. 그래서 C#과 Obj-C 양쪽의 연결은 가정에서 100 % 느껴집니다.예를 들어 내가 '
:
[CWHessianArchiver setClassName:@"com.mycompany.ITest"
forProtocol:@protocol(CWTest)];
[CWHessianArchiver setMethodName:@"AddNumbers"
forSelector:@selector(addInt:toInt:)];
나는 내 자신의 WCF 서비스를 실행하고있다. 나는 soap tho를 사용하지 않는다. – Daniel
나는 아이폰에 너무 큰 비누 프로토콜을 강하게 가지고있다. – fyasar
Bro, 제공하신 링크는 더 이상 제공되지 않는다. u가 있으면 새로운 것을 게시하십시오. –