Comments (1)
You can do like this. But, you should use some kind of process control system like "http://supervisord.org/" in order to reconnect to an operator after process.exit(). Hope, it helps. Good luck!
// Missed enquire links counter
var counter = 0;
// Total missed enquire links allowed
var maxCount = 3;
// Timeout for an enquire link
var timeout = 20000; // 20 seconds
var session = smpp.connect(
'host',
'port'
);
// Respond to an enquire link
session.on('enquire_link', function (pdu) {
session.send(pdu.response());
logger.info('Responded an enquire link');
});
// Response to an enquire link
session.on('enquire_link_resp', function (pdu) {
counter = 0;
logger.info('Received a response to an enquire link');
});
// Listen to the unbind event and kill the process
session.on('unbind', function(pdu) {
session.send(pdu.response());
logger.info('SMPP unbind');
session.close();
process.exit();
});
// Kill the process on an SMPP connection error
session.on('error', function (error) {
logger.error('SMPP connection error: ' + error);
session.close();
process.exit(1);
});
// Kill the process when an SMPP connection is closed
session.on('close', function () {
logger.info('SMPP connection is closed');
process.exit();
});
// Bind transceiver
session.bind_transceiver({
system_id: 'login',
password: 'password'
}, function (pdu) {
if (pdu.command_status != smpp.errors.ESME_ROK) {
logger.error('SMPP bind transceiver error: ' + pdu.command_status);
session.close();
process.exit(1);
} else {
logger.info('Connected');
enquireLink();
// Send sms here....
}
}
function enquireLink() {
if (counter < maxCount) {
session.enquire_link();
counter++;
logger.info('Enquired a link');
setTimeout(function () {
enquireLink();
}, timeout);
} else {
logger.info('The SMPP connection is dead.');
session.close();
process.exit();
}
}
from node-smpp.
Related Issues (20)
- SMPP -Command status 3 HOT 1
- Type definitions HOT 2
- node-smpp as a proxy (Help) HOT 1
- Client not Connected HOT 1
- define wait-ack
- Crash when short_message misstype
- Pdu command length error HOT 2
- Support for user-defined TLVs
- Addition of more example on node-smpp usage HOT 10
- error on send pdu HOT 2
- Command status codes related to official SMPP Spec Error Codes
- Getting invalid password response from SMPP Server HOT 1
- Node client crash with ECONNRESET HOT 5
- Couldn't recieve SMS from SMSC HOT 7
- Differntiate between incoming message and an incoming message that gets triggered after a message is sent using smpp HOT 2
- Error while connecting to server PDU_STATUS 15 HOT 3
- connection issue when setting up the smpp server. HOT 6
- Getting esm_class === 4 for every sent SMS HOT 2
- [Support] total received DLR and Submit response vs total sent SMS
- message_payload or UDH header HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-smpp.