Eigene Funktionen ueber SOAP bereit stellen?

Hallo zusammen,

ich moechte eigene Funktionen ueber SOAP bereit stellen. Laesst sich der eingebaute SOAP-Server erweitern? Falls ja, wie? Falls nein, wie kann das gehen?

Ueber einen ersten Hinweis waere ich sehr dankbar …

Adrian

Mit dem SDK Kannst du eigene Module schreiben und diese mit Methoden ausstatten, die dann auch über SOAP erreichbar sind.

Was genau hast du denn vor? Vielleicht hilft die TRIXI ja auch schon weiter? Sie kommuniziert über SOAP und du kannst sie recht simpel in vielen Programmiersprachen einsetzen.

Gruß,

Toni

Hi Toni,

danke fuer die Antwort.

Die Aufgabenstellung ist recht simpel: angenommen, ich habe eigene PHP Funktionen (nicht unbedingt IPS - spezifisch), hier mal als Beispiel:



function addiere($a, $b)
{
   return ($a + $b); 
}



Diese Funktion befindet sich in einer PHP Datei auf dem IPS Rechner. Ich moechte sie direkt ueber SOAP aufrufen. Direkt heisst in diesem Zusammenhang, ohne ein IPS - Script drum herum bauen zu muessen. Da IPS die SOAP Funktionalitaet von Haus aus bereit stellt, frage ich mich, ob es einen Weg gibt, auch meine Funktionen darueber auf zu rufen.

SDK kommt fuer mich nicht in Frage, da ich kein Delphi kann. Trixi’s Funktionalitaet kenne ich nicht, aber aus Kompatibilitaetsgruenden versuche ich immer ausschliesslich mit „Bordmitteln“ (IPS + PHP) klar zu kommen.

Ich hoffe, ich konnte die Herausforderung einigermassen klar schildern …

Danke

Adrian

Ich hab vor längerer Zeit mal mit paresy über genau so eine Funktion gesprochen. Damals gabs das noch nicht. Ohne Script kann IPS deine Funktion nicht finden weil es keine ID hat. Namen haben keine Bedeutung in IPS.

TRIXI ist ein SOAP-Wrapper. Ich habs damals IPS-SDK für „Dummies“ genannt damit man eben nicht Delphi können muss.

Ich würd mal tippen das geht so nicht. Es wäre streng genommen auch ein ziemliches Sicherheitsrisiko wenn man „mal eben“ von Ausserhalb beliebigen PHP-Code auf deinem Server ausführen könnte.

Edit:

vielleicht ohne SOAP? Hier Kliggn

Toni

Schau dir lieber die JSON RPC Schnittstelle an. Das ist die Zukunft.

paresy

Also ohne das Skript in IPS, sprich der Console einzubinden, wirst Du keine Möglichkeit finden.

Wenn das Skript in der Console eine ID hat kannst Du es mit SOAP aufrufen.

$soap = new SoapClient("http://127.0.0.1:3773/wsdl/IIPSScriptEngine");
$result = $soap->ExecuteScript(12345, true);
echo base64_decode($result);

Da Du das Beispiel mir einer Function lieferst sehe ich aber Probleme da hier anscheinend keine Parameterübergabe möglich ist.

Rückgabewerte kommen anscheinend, habe das ganze aber nicht getestet da nur aus der Doku.

http://www.ip-symcon.de/service/dokumentation/entwicklerbereich/datenaustausch/

Und ich nehme an SOAP wird dann von Heut auf Morgen nicht länger unterstützt? :frowning:

Toni