zemuldo / iso_8583

:credit_card::moneybag: JavaScript library for iso 8583 messaging. Handles message validation & conversion between interfaces using iso 8583 standard. Contributors are welcome.
https://zemuldo.github.io/iso_8583/
MIT License
89 stars 54 forks source link

Response to received data from socket #49

Closed Hajitsu closed 5 years ago

Hajitsu commented 5 years ago

Hi How can I parseJPOS XMLPackage data receiving from the socket? I have problems with iso_8583.

const net = require('net');
const iso8583 = require('iso_8583');

const port = 7070;
const host = '127.0.0.1';

net.createServer(function(socket) {
    console.log('CONNECTED: ' + socket.remoteAddress + ':' + socket.remotePort);
    socket.on('data', function(data) {
        // ********* Problem is here. Below Line ***********
        var isopack = new iso8583().isoPack(data).getXMLString();
        // ********* And how to change MTI ***********
        isopack.console.log('DATA ' + socket.remoteAddress + ': ' + data);
        socket.write('You said "' + isopack + '"');
    });
    socket.on('close', function() {
        console.log('CLOSED: ' + socket.remoteAddress + ' ' + socket.remotePort);
    });
}).listen(port, host);

console.log('Server listening on ' + host + ':' + port);

I couldn't parse received data from the socket and change MTI. How Can i do this? Thanks.

zemuldo commented 5 years ago

What are you trying to achieve? Explain what data format the socket receives and what your data handler should do with it. That way I can understand the problem better. Cheers!

Hajitsu commented 5 years ago

I want to send data to the server, the server gets data, change it and then send back to the client. I get some error and fix it:

toResponse() {
    let mti = String.fromCharCode(this.Msg['2']);
    let type = parseInt(mti, 10) + 1;
    var msg = this.Msg.toString();
    msg = msg.substr(0, 2) + type + msg.substr(3 , msg.length-3);
    this.Msg = msg;
    return msg;
}

Error occurred when I passed data from JPOS to this server in ISO93APackager type. (this is my message: 11008020000000800000040000000000001000000100000001301012iiiiiiiiiii0)

zemuldo commented 5 years ago

What error did you get? This data 11008020000000800000040000000000001000000100000001301012iiiiiiiiiii0 does it come as a string and what is JPOS definition of what it should contain?

Hajitsu commented 5 years ago

@zemuldo I forked the repository and solve my problem. I'm adding some features like ASCIIPackager, Dump, Pack and Unpack and... When it finishes I create a pull request.

zemuldo commented 5 years ago

@HamidMohammadi I will look forward to your PR 😄