【发布时间】:2014-05-05 20:08:11
【问题描述】:
我找到了这个 SMPP 收发器实现:
http://sourceforge.net/projects/php-smppv3-4/files/
我使用smpp_transceiver.php的方式如下:
档案send.php
require_once "smpp_transceiver.php";
...
// Open socket
$tx = new SMPP('SOME IP HERE', $port); // (1)
$tx->debug = false;
$tx->system_type = $systemType;
$tx->addr_npi = 1;
// Login as transmitter
$bindResult = $tx->bindTransmitter($username, $password);
$tx->sms_source_addr_npi = 1;
$tx->sms_source_addr_ton = 0;
$tx->sms_dest_addr_ton = 0;
$tx->sms_dest_addr_npi = 1;
// Send SMS
$sendResult = $tx->sendSMS($from, $to, $msg);
// Close socket
$tx->close(); // (2)
$state2 = $tx->state;
// Delete object
unset($tx);
非常简单的问题:
可以不断打开 (1) 和关闭 (2) 套接字吗?
这个send.php 应该充当网络服务。
所以我会连续多次调用这个:
http://...../send.php?mobile=......&body=hey
http://...../send.php?mobile=......&body=blah
http://...../send.php?mobile=......&body=zort
http://...../send.php?mobile=......&body=troz
有人告诉我 SMPP 连接应该保持活动状态,这显然不会在这里发生。
那么,还有两个问题:
如何保持连接有效?假设这是 PHP 并且
smpp_transceiver.php是一个非静态类。我希望对 send.php 的每次调用都使用相同的套接字连接。如果前面的事情不可行,我是否应该对
smpp_transceiver.php实施某种同步锁(o)?
【问题讨论】: