2016-06-08 81 views
0

如何在建立到SMSC的持久連接時持續運行以下代碼。在這裏setRecvTimeout(60000)有什麼明確的含義。Smpp在php中接收短信

<?php //Receive sms 

require_once 'smppclient.class.php'; 
require_once 'sockettransport.class.php'; 

// Construct transport and client 
$transport = new SocketTransport(array('smpp.provider.com'),3600); 
$transport->setRecvTimeout(60000); // for this example wait up to 60 seconds for data 

for(;;){ 
$smpp = new SmppClient($transport); 

// Activate binary hex-output of server interaction 
$smpp->debug = true; 
$transport->debug = true; 

// Open the connection 
$transport->open(); 
$smpp->bindReceiver("USERNAME","PASSWORD"); 

// Read SMS and output 
$sms = $smpp->readSMS(); 

$read = $sms -> message;// reads the message 
echo $read."\n"; 

$phone = $sms -> source-> value; //gets the phone number 
echo $phone."\n"; 

echo "SMS:\n"; 
//var_dump($sms); 

// Close connection 
$smpp->close(); 

} 
?> 

回答

0

這只是將內部超時設置爲60秒。所以如果它在60秒後沒有收到任何東西,這意味着連接斷開。

這是超時的一般原則。

+0

如果有人可以請告訴我連續運行此代碼有哪些方法? –

+0

它是不是已經在一個無限循環('for')? –

+0

會設置一個超時問題來持續運行此代碼? –