Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

tinyhttp/tinyws

Repository files navigation

tinyws

🚑 tiny WebSocket middleware for Node.js


Version Downloads GitHub Workflow Status Codecov

tinyws is a WebSocket middleware for Node.js based on ws, inspired by koa-easy-ws.

Check the chat example out to get familiar with tinyws.

Features

  • Small size (498B)
  • Easy to use (only req.ws and nothing else)
  • Framework-agnostic (works with tinyhttp, express etc)
  • Written in TypeScript
  • Pure ESM

Why not express-ws?

because express-ws is...

  • Abandoned since 2018 πŸ’€
  • Doesn't come with types out of the box (have to install @types/express-ws)
  • Not compatible with tinyhttp and polka
  • Buggy as hell
  • Doesn't have tests

Install

pnpm i ws tinyws

Example

import { App, Request } from '@tinyhttp/app'
import { tinyws, TinyWSRequest } from 'tinyws'
const app = new App<any, Request & TinyWSRequest>()
app.use(tinyws())
app.use('/ws', async (req, res) => {
 if (req.ws) {
 const ws = await req.ws()
 return ws.send('hello there')
 } else {
 res.send('Hello from HTTP!')
 }
})
app.listen(3000)

See examples for express and polka integration.

Sponsor this project

Contributors 3

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /