Hessian es un protocolo de comunicación mucho mejor que XML. Al ser un formato binario, es aún más compacto, y con un análisis de formato estricto es mucho más más rápido.
Como beneficio adicional, ya existen marcos para Java, .NET y PHP para exponer un servicio web. Verdaderamente fácil. Asume que tiene este C# interface:
public interface ITest {
public string getGreeting();
int addNumbers(int a, int b);
}
Entonces implementarlo en el servidor mediante HessianC# es muy fácil:
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;
}
}
}
}
En el lado iPhone necesita ser traducido en un protocolo de Objective-C de la interfaz de C# :
@protocol ITest
-(NSString*)getGreeting;
-(int)addNumbers:(int)a :(int)b;
@end
Y a continuación, utilizando HessianKit para conseguir un proxy para el servicio es casi tan fácil:
id<ITest> proxy = [CWHessianConnection proxyWithURL:serviceURL
protocol:@protocol(ITest)];
NSLog(@"Greeting: %@", [proxy getGreeting]);
NSLog(@"The answer: %d", [proxy addNumbers:40 :2]);
En esta breve respuesta, los nombres de los métodos no son del todo C# -ish, tampoco del todo Obj-C-ish. Esto se debe a que, por defecto, HessianKit usa las convenciones de nomenclatura de Java. Esto se puede anular en HessianKit proporcionando el método y las traducciones del nombre del tipo. De modo que tanto el lado C# como el lado Obj-C de la conexión se sienten al 100% en casa.Por ejemplo:
[CWHessianArchiver setClassName:@"com.mycompany.ITest"
forProtocol:@protocol(CWTest)];
[CWHessianArchiver setMethodName:@"AddNumbers"
forSelector:@selector(addInt:toInt:)];
Tengo mis propios servicios de WCF en ejecución, no uso jabón aunque – Daniel
Estoy muy de acuerdo con usted, protocolo de protocolo demasiado grande para Iphone – fyasar
Bro, el enlace que proporcionó ya no está disponible. Publique uno nuevo si lo tiene. –