
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
observable-socket
Advanced tools
An observable socket, no duh. Tested with ws and window.WebSocket.
observable-socket assumes Promise is available. If you're targeting an environment that does not
support native Promises, use
babel-polyfill or something
similar.
install it.
npm i observable-socket
import and use it.
const ObservableSocket = require('observable-socket')
const WS = require('ws')
/**
* Create an echo socket by connecting to the echo socket provided by
* websocket.org.
*/
const echoSocket = ObservableSocket.create(new WS('wss://echo.websocket.org'))
/**
* Subscribing to `echoSocket` receives messages from the underlying
* WebSocket.
*/
echoSocket.down.subscribe(
function next (msg) {
console.log(msg.data)
},
function error (e) {
console.error('uh oh! ', e)
},
function complete () {
console.warn('Socket has closed')
}
)
/**
* We can send messages too!
*/
echoSocket.up('hi!')
<script type="text/javascript">
window.debug = lbl => msg => console.log(`${lbl}: ${msg}`) // debug however you like
</script>
<script type="text/javascript" src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/observable-socket@6.0.0/dist/browser.min.js"></script>
<script>
var socket = ObservableSocket.create(new WebSocket('wss://echo.websocket.org'))
// Send messages up the socket
socket.up('hello')
// Receive messages down the socket
socket.down.subscribe(
msg => console.log(msg.data),
() => console.log('done'),
err => console.error(err)
)
</script>
This module exports a function that takes a WebSocket, and returns an object
with two properties, up and down.
up is a function to push messages up the socket. This will create
a queue of messages that will not be sent until the socket is connected.
down is an RxJS stream. You can
subscribe to it.
observable-socket does not construct WebSockets, therefore there isn't
a notion of "healing" a connection. Instead, when a socket drops, the
complete of observable-socket is called, which can be leveraged into
creating a new socket, and re-wrapping observable-socket around it. An
example of how this can be done:
There are a few different bundles in dist/:
FAQs
Wraps a websocket in an Observable.
We found that observable-socket demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.