Socket
Book a DemoInstallSign in
Socket

net-websocket-polyfill

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

net-websocket-polyfill

A websocket polyfill for the net module

0.1.1-r3
latest
Source
npmnpm
Version published
Weekly downloads
247
10.27%
Maintainers
1
Weekly downloads
 
Created
Source

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:

Keywords

net

FAQs

Package last updated on 05 Aug 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.