56 lines
2.7 KiB
Markdown
56 lines
2.7 KiB
Markdown
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](http://nodejs.org/api/stream.html#stream_api_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](http://nodejs.org/api/tls.html#tls_cleartextstream_getpeercertificate) 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](http://opensource.org/licenses/MIT), a copy of which can be found in the LICENSE file.
|