socksjs
A SOCKS (v5) client library for node.js
Installation
$ npm install socksjs
API
var SocksConnection = require('socksjs');
SocksConnection implements node’s Duplex Stream. See the Node documentation for Stream consumers to see what methods and events are available in addition to those listed below.
Creating a new SocksConnection
var sock = new SocksConnection(remote_options, sock_options);
var sock = SocksConnection.connect(remote_options, sock_options, connect_handler);
remote_options * port
- The port to
connect to (mandatory) * host
- The hostname or IP to
connect to through the SOCKS proxy (optional, default:
'localhost'
) * ssl
- Connect using SSL
(optional, default false
) * rejectUnauthorised
- If true
, the server certificate is verified against the
list of supplied CAs. An 'error'
event is emitted if
verification fails (optional, default: false
) *
key:
- A string or Buffer containing the private key of the
client in PEM format. * cert
- A string or Buffer
containing the certificate key of the client in PEM format.
socks_options * localAddress
- The
local interface to bind to for the outgoing connections (optional,
default: 0.0.0.0
) * allowHalfOpen
- If
true
, the socket won’t automatically send a FIN packet when
the other end of the socket sends a FIN packet. (optional, default:
false
) * host
- The hostname or IP of the
SOCKS proxy (optional, default: localhost
) *
port
- The SOCKS proxy’s port (optional, default:
1080
) * user
- The username to use to
authenticate to the SOCKS proxy (optional, default: null
) *
pass
- The password to use to authenticate to the SOCKS
proxy (optional, default: null
)
connection_listener
Function to attach to the ‘connect’ event of the SocksConnection
Additional Methods
getPeerCertificate
- Returns an object representing the
peer’s certificate. See the Node
tls documentation for more information.
Events
connect
SocksConnection will emit a connect
event when it has
successfully connected to the target host
error
SocksConnection will emit an error
event if it cannot
connect to the SOCKS proxy, target host or if there is an error during
the connection’s lifetime.
Contributing
Tests
socksjs needs tests. Pull requests with testcases are much appreciated.
License
socksjs (C) 2013 Jack Allnutt and is licensed under the MIT license, a copy of which can be found in the LICENSE file.