PHP SMPP实现,不断打开和关闭套接字:它有害吗?

时间:2014-05-05 20:08:12

标签: php sockets smpp

我发现了这个SMPP Transceiver实现:

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连接应该保持活着,这显然不会发生在这里。

所以,还有两个问题:

  1. 如何保持连接存活?鉴于这是PHP,smpp_transceiver.php是非静态类。我希望每次调用send.php都使用相同的套接字连接。

  2. 如果以前的事情不可能,我应该对smpp_transceiver.php实施某种同步锁(o)吗?

1 个答案:

答案 0 :(得分:0)

你应该尽可能保持连接的存在,但这也是一个经常出现频率的问题。

如果“频繁”是一分钟几次,那么,它不是世界末日而且继续。 如果“频繁”是每秒几次,那么您可能想要为实际的SMPP部分寻求另一种方法。对于需要长时间保持活动的服务,PHP不是一个很好的选择。试试python,node或ruby。