UNPKG

netdde

Version:

A JavaScript implementation of the NetDDE protocol

58 lines (49 loc) 1.7 kB
const net = require('net'); const NetDDEClientSerializer = require('../../src/client/serializer'); const NetDDEClientParser = require('../../src/client/parser'); const C = require('../../src/constants'); const os = require('os'); let serializer = new NetDDEClientSerializer(); let parser = new NetDDEClientParser(); let counter = 1, convPtr, convId, currentService; serializer.on('error', e => console.log(' # Serializer ERROR:', e)); parser.on('error', e => console.log(' # Serializer ERROR:', e)); parser.on('data', d => console.log(' < DATA', d)); parser.on('data', d => { if (d.type == C.DDE_CREATE_CONVERSATION) { convPtr = d.payload.convPtr; convId = d.payload.convId; } }); let sock = net.createConnection(8888, '192.168.15.119'); sock.on('error', e => console.log(' # Socket ERROR:', e)); sock.on('connect', () => console.log(' # Socket Connected!')); sock.pipe(parser); serializer.pipe(sock); function send(type, payload) { serializer.write({ id: counter++, type, payload }) } function connect(service = 'PROGMAN') { currentService = service; send(C.NETDDE_CLIENT_CONNECT, { service: service, computer: os.hostname(), user: os.userInfo().username, process: process.argv0, version: "v2.0" }) } function convStart(service = 'PROGMAN', topic = 'PROGMAN') { send(C.DDE_CREATE_CONVERSATION, { service, topic }); } function convRequest(item) { send(C.DDE_REQUEST, { convPtr, convId, item }); } function end() { send(C.DDE_DESTROY_CONVERSATION, { convPtr, convId}); send(C.NETDDE_CLIENT_DISCONNECT, { service: currentService, computer: os.hostname()}); sock.end(); }