SOAP: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: <source lang="perl">#!/usr/bin/perl use SOAP::Lite +autodispatch => uri => 'http://ethersex.de/SOAP', proxy => 'http://192.168.23.244/soap'; print "Aktuelle Uptime de...)
 
Zeile 1: Zeile 1:
 +
Ethersex unterstützt seit kurzem das SOAP-Protokoll über HTTP, was eine einfachere Kommunikation des Ethersex mit Programmen jedweder Art erlaubt.  Bislang musste immer der Umweg über eine TCP-Verbindung auf den ECMD-Port gegangen werden und die Text Ein-/Ausgabe geparst werden.  Mit SOAP können die Funktionen direkt im Programm-Code verwendet werden.
 +
 +
Das Perl-Modul ''SOAP::Lite'' bietet eine Funktion namens ''+autodispatch'', die die Funktionen transparent zur Verfügung stellt:
 +
 
<source lang="perl">#!/usr/bin/perl
 
<source lang="perl">#!/usr/bin/perl
 
use SOAP::Lite +autodispatch => uri => 'http://ethersex.de/SOAP',
 
use SOAP::Lite +autodispatch => uri => 'http://ethersex.de/SOAP',
Zeile 9: Zeile 13:
 
# direkt zu erfassen.
 
# direkt zu erfassen.
 
print "Aktuelle Systemzeit (Unix-Timestamp): ", SOAP::Lite->self->time()->result, "\n";
 
print "Aktuelle Systemzeit (Unix-Timestamp): ", SOAP::Lite->self->time()->result, "\n";
 +
</source>
  
</source>
+
Die Ausgabe des Programms ist erwartungsgemäß:
 +
stesie@wuchtbrumme:~/p/ethersex$ ./soaptest.pl
 +
Aktuelle Uptime des Ethersex: 832
 +
Aktuelle Systemzeit (Unix-Timestamp): 1250979228

Version vom 22. August 2009, 23:14 Uhr

Ethersex unterstützt seit kurzem das SOAP-Protokoll über HTTP, was eine einfachere Kommunikation des Ethersex mit Programmen jedweder Art erlaubt. Bislang musste immer der Umweg über eine TCP-Verbindung auf den ECMD-Port gegangen werden und die Text Ein-/Ausgabe geparst werden. Mit SOAP können die Funktionen direkt im Programm-Code verwendet werden.

Das Perl-Modul SOAP::Lite bietet eine Funktion namens +autodispatch, die die Funktionen transparent zur Verfügung stellt:

#!/usr/bin/perl
use SOAP::Lite +autodispatch => uri => 'http://ethersex.de/SOAP',
	proxy => 'http://192.168.23.244/soap';

print "Aktuelle Uptime des Ethersex: ", whm(), "\n";

# Perl hat selbst eine time() Funktion, von daher kann +autodispatch
# in diesem Fall nicht verwendet werden, sondern der RPC-Aufruf ist
# direkt zu erfassen.
print "Aktuelle Systemzeit (Unix-Timestamp): ", SOAP::Lite->self->time()->result, "\n";

Die Ausgabe des Programms ist erwartungsgemäß:

stesie@wuchtbrumme:~/p/ethersex$ ./soaptest.pl 
Aktuelle Uptime des Ethersex: 832
Aktuelle Systemzeit (Unix-Timestamp): 1250979228