net-websocket-polyfill
v0.1.1-r3
Published
A websocket polyfill for the net module
Downloads
1,633
Maintainers
Readme
net-websocket-polyfill
PRs and issues are greatly appreciated
This a browserify polyfill to emulate the net module.
Browserify generates polyfills when it can, but the net module can't be browserified, because browsers don't have access to sockets. This project is meant to emulate the net module by organizing all traffic through WebSockets, instead of Sockets. This module tries to keep the api as similar as possible, but refer to the source code if needed. This means you should be able to plug and play this module instead of the standard net module.
Usage
Load aliasify
as a transform. Set this module as an alias for the net
module. For example, you could do this in your package.json
"browserify": {
"transform": [
"aliasify"
]
},
Then configure the alias.
"aliasify": {
"aliases": {
"net": "net-websocket-polyfill"
}
},
You need a WebSocket/TCP proxy in order for this to work!. The browser doesn't have access to raw TCP sockets so we should transmit data over a websocket to our proxy. Our proxy will forward data to the specified target. This proxy will work. Then connect to the proxy instead of the target.
TODO:
- Support IP address and DNS utilities
- General support
- Test module with other popular projects
Features
Green checkmarks indicate polyfills that this module has. Features are being added as fast as possible!
Class: net.Socket
- new net.Socket([options]) :heavy_check_mark:
- Event: 'close' :heavy_check_mark:
- Event: 'connect' :heavy_check_mark:
- Event: 'data' :heavy_check_mark:
- Event: 'drain'
- Event: 'end'
- Event: 'error' :heavy_check_mark:
- Event: 'lookup'
- Event: 'ready' :heavy_check_mark:
- Event: 'timeout'
- socket.address() :heavy_check_mark:
- socket.bufferSize :heavy_check_mark:
- socket.bytesRead
- socket.bytesWritten
- socket.connect() :heavy_check_mark:
- socket.connect(options[, connectListener]) :heavy_check_mark:
- socket.connect(path[, connectListener]) :heavy_check_mark:
- socket.connect(port[, host][, connectListener]) :heavy_check_mark:
- socket.connecting :heavy_check_mark:
- socket.destroy([exception]) :heavy_check_mark:
- socket.destroyed :heavy_check_mark:
- socket.end([data][, encoding][, callback])
- socket.localAddress
- socket.localPort
- socket.pause()
- socket.pending
- socket.ref()
- socket.remoteAddress
- socket.remoteFamily
- socket.remotePort :heavy_check_mark:
- socket.resume()
- socket.setEncoding([encoding]) :heavy_check_mark:
- socket.setKeepAlive([enable][, initialDelay])
- socket.setNoDelay([noDelay])
- socket.setTimeout(timeout[, callback])
- socket.unref()
- socket.write(data[, encoding][, callback]) :heavy_check_mark: