2016-05-27 4 views
2

ich Asterisk über PHP anschließe fopensock mit() und dann auf die/von der CLI mit fputs() und fget() lesen und schreiben, zB:Klar fopensock Strompuffer/Geschichte in PHP für Asterisk

$socket = fopensock('127.0.0.1',port, $errno, $errstr, 1); //connect 
fputs($socket,"Action: Login\r\nUserName: mark\r\nSecret: test\r\n\r\n"); //login 
fputs($socket,"Action: Command\r\nCommand: core show channel $channel\r\n\r\n"); //command 
$line = fgets($socket); //read output 

Das funktioniert gut, aber ich kann nicht herausfinden, wie Sie den Stream-Puffer/Verlauf löschen, ohne mich abzumelden und jedes Mal neu anzumelden, wenn ich einen neuen Befehl ausstelle.

Ich versuchte fflush($socket), aber das scheint keine Wirkung zu haben.

Als ich versuchte, truncate($socket,ftell($socket)) ich Fehler Can't truncate this stream!

Antwort

0

WENN Sie bündig Lesestrom benötigen, ist einfachste Art und Weise habe gerade gelesen, ohne bis Sie Informationen haben blockiert.

Sie können nach dem Senden keine Informationen aus dem Schreibskript entfernen.