electrum-client/lib/init_socket.js
2017-07-20 14:05:16 +09:00

40 lines
847 B
JavaScript

'use strict'
const tls = require('tls');
const net = require('net');
const getSocket = (protocol, options) => {
switch(protocol){
case 'tcp':
return new net.Socket();
case 'tls':
case 'ssl':
return new tls.TLSSocket(options);
}
throw new Error('unknown protocol')
}
const initSocket = (self, protocol, options) => {
const conn = getSocket(protocol, options);
conn.setEncoding('utf8')
conn.setKeepAlive(true, 0)
conn.setNoDelay(true)
conn.on('connect', () => {
self.onConnect()
})
conn.on('close', (e) => {
self.onClose(e)
})
conn.on('data', (chunk) => {
self.onRecv(chunk)
})
conn.on('end', (e) => {
self.onEnd(e)
})
conn.on('error', (e) => {
self.onError(e)
})
return conn
}
module.exports = initSocket