Skip to content

Fast & lightweight WebSocket server with channels.

License

Notifications You must be signed in to change notification settings

lucko/bytesocks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bytesocks

bytesocks is a fast & lightweight WebSocket server.

It allows clients to create "channels", connect using the WebSocket protocol and exchange messages with other clients in the same channel.

In many ways bytesocks is the "socket" sibling of bytebin. bytebin accepts http get and post requests which allows clients to exchange data asynchronously (client A posts, then client B reads later), whereas bytesocks uses sockets to send messages synchronously (in real time and bidirectionally, client A sends and client B receives).

Running bytesocks

The easiest way to spin up a bytesocks instance is using Docker. Images are automatically created and published to GitHub for each commit/release.

Assuming you're in the bytesocks directory, just run:

$ docker compose up

You should then (hopefully!) be able to access the application at http://localhost:3000/.

It's that easy!

API Usage

Create a channel

To create a channel, send an HTTP GET request to /create.

A unique key that identifies the newly created channel will be returned. You can find it:

  • In the response Location header.
  • In the response body, encoded as JSON - {"key": "aabbcc"}.

Join a channel

Send an HTTP GET request to /{key} with the headers:

Connection: Upgrade
Upgrade: websocket

At this stage it's probably easier to find an HTTP client library that supports web sockets instead of reimplementing the protocol yourself!

License

MIT, have fun!

About

Fast & lightweight WebSocket server with channels.

Topics

Resources

License

Stars

Watchers

Forks

Packages