2012-04-08 4 views
2

Laut dem Autor von Faye i-Nachrichten von jeder Plattform
und das Format eine Nachricht schreiben mit Curl ist senden:Curl in PHP unter Verwendung von Daten zu veröffentlichen, mit Faye

curl -X POST http://192.168.1.101:8000/faye -H 'Content-Type: 
    application/json' -d '{"channel":"/foo","data":{"hello":"world"}}' 

ich die vorhergehende Zeile formatieren in php verwendet werden

$data = array("channel" => "/one", "result" => "Hello World from PHP!!"); 
$data_string=json_encode($data); 
$ch = curl_init('http://192.168.1.101:8000/faye'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"POST"); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string);               
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);                
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Content-Type:application/json','Content-Length:'strlen($data_string))); 
$result = curl_exec($ch); 

irgendwie der Abonnent zu kanalisieren man das Ergebnis nicht GET DOES

die Publish-Funktion in Java Script WO rks nahtlos (siehe Linie unten)

var publication = client.publish('/one',{ result: 'Hello World from JS'});<br/> 

Bitte lassen Sie mich wissen, was oder mein Fehler dank fehlt

+1

Sollte nicht „Ergebnis“ sein „-Daten "? –

+0

Ich habe einen Fehler gemacht, indem ich die Veröffentlichungsfunktion auf curl einstellte. Der korrekte Wert für $ data_string sollte sein: 1) $ data_string = '{"channel": "/ eins", "data": {"result": "Hallo Welt von PHP !!"}}'; ODER 2) $ data = array ("channel" => "/ eins", "data" => array ("result" => "HelloWorld from PHP !!")); $ data_string = json_encode ($ data); Vielen Dank!!!!!!!!! – edino

+0

@edino: Wenn Sie das Problem selbst gelöst haben, sollten Sie die Lösung als Antwort schreiben und die Antwort akzeptieren. Das wird die Frage als beantwortet markieren und Leute (wie mich) davon abhalten, ihr Problem zu verstehen, nur um herauszufinden, dass Sie es bereits in den Kommentaren gelöst haben. Vielen Dank. –

Antwort

0

Dieser funktioniert für mich:

$data = array("channel" => "/one", "data" => array ("result"=>"HelloWorld from PHP!!")); 
$data_string=json_encode($data); 
$ch = curl_init('http://localhost:8000/faye'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"POST"); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string);               
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);                
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json')); 
echo $result = curl_exec($ch); 
Verwandte Themen