Schnittstelle Erlang Anwendung mit PHP

8

Ich habe eine Website mit PHP erstellt. Ich habe eine Erlang-Anwendung, die als Daemon auf demselben Server läuft. Ich muss Funktionen auf der Erlang-Anwendung von PHP aufrufen und das Ergebnis zurückbekommen.

Ich habe PHP / Erlang und über PHP-Module gefunden, aber ich kann kein PHP-Modul auf diesem Server installieren, ich kann nur PHP-Code verwenden.

Der einzige Weg, den ich kenne, um es zu lösen, ist, lokal einen Erlang-Webserver zu betreiben, mit dem PHP sprechen kann.

Gibt es einen besseren Weg, es zu lösen? Wenn der Gebrauch eines httpd Servers der beste Weg ist, welchen Erlang Server sollte ich benutzen? Es sollte so leicht wie möglich sein und benötigt keine Features wie SSL und muss keine große Last verarbeiten.

Danke

    
jldupont 23.09.2009, 01:12
quelle

5 Antworten

3

Ich würde einen Webserver wie mochiweb betreiben, der den Erlang-Code hostet. Der PHP-Code würde curl verwenden, um in JSON codierte http-Anfragen an mochiweb zu senden. Mochiweb hat einen JSON-Encoder / Decoder und PHP hat native JSON-Unterstützung.

Auch wenn sich alles auf demselben Server befindet, verwenden Sie einfach HTTP. Behandelt alle Low-Level-Sachen und wenn Sie skalieren müssen, wird es einfacher, da die Skalierung mit HTTP ein gelöstes Problem ist. Mochiweb ist leicht und hat eine hohe Leistung.

    
cstar 24.09.2009 17:01
quelle
2

$ cat erl.erl

%Vor%

$ chmod + x erl.erl

$ cat php.php

%Vor%

$ php php.php

string (11) "[1,2,3,4,5]"

    
JLarky 23.09.2009 13:53
quelle
2

Erlang ist exzellent in der Socket-I / O: vielleicht könntest du eine Art Pipe benutzen?

Das wäre direkter als über eine andere WEB-Server-Ebene.

Verwenden Sie die Funktionen erlang: open_port und erlang: port_command , um Daten über einen Systemport aus Erlang zu holen.

    
jldupont 23.09.2009 01:38
quelle
1

Schauen Sie sich erl_call an. Ссылка

Es ist ein Unix-Programm, mit dem eine Funktion in erlang aufgerufen wird. Es startet einen Dummy-Erl-Knoten, führt die Befehle aus und gibt das Ergebnis zurück. Sie könnten PHP verwenden, um erl_call aufzurufen und dann die Ergebnisse zu verwenden, die es zurückgibt.

    
ErJab 02.10.2009 07:16
quelle
-2

Ich glaube nicht, dass es eine bessere Lösung gibt. Ich brauche einen Erlang Webserver, um es im Web laufen zu lassen. Hier sind einige Informationen PHP + Erlang verwandt

Ссылка

    
Sorantis 23.09.2009 01:19
quelle

Tags und Links