Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/melishev/wsgo
WebSocket client for the browser. Simplifying development and debugging
https://github.com/melishev/wsgo
real-time rfc-6455 websocket
Last synced: 4 months ago
JSON representation
WebSocket client for the browser. Simplifying development and debugging
- Host: GitHub
- URL: https://github.com/melishev/wsgo
- Owner: melishev
- License: mit
- Created: 2024-02-03T15:39:19.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-03T18:18:13.000Z (11 months ago)
- Last Synced: 2024-05-29T11:27:57.930Z (9 months ago)
- Topics: real-time, rfc-6455, websocket
- Language: TypeScript
- Homepage:
- Size: 262 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
WSGO
WebSocket client for the browser. Simplifying development and debugging
> [!NOTE]
> Please lock the version of the package. This library is not stable yet and may have some behavioral differences depending on the version.### What is WSGO?
The WSGO library acts as an abstraction on top of a pure WebSocket connection. Think of it as:
- Socket.io, only without being tied to your server implementation
- Axios, just for WebSocket communicationWSGO is designed to standardize communication between client and server through an explicit and common communication format
### Getting Started
To install the library in your project:
```
npm i wsgo
```Then import WSGO into your code to create a connection to the server with the default settings:
```js
import WSGO from 'wsgo'const wsgo = WSGO('wss://echo.websocket.org')
```### Options
#### debugging
> Allows you to enable debugging mode when working with events. Logs outgoing and incoming events more informative than default browser developer tools
- type: boolean
- default: false#### immediate
> Whether to connect to the server automatically when WSGO is initialized. If set to false, call the `open` method yourself when you are ready
- type: boolean
- default: true#### heartbeat
> Implements the basic ping-pong mechanism. If there is no response from the server, closes the connection
- type: boolean
- default: true### Examples
Create a WebSocket connection:
```js
import WSGO from 'wsgo'const wsgo = WSGO('wss://echo.websocket.org')
```Open the connection manually:
```js
import WSGO from 'wsgo'const wsgo = WSGO('wss://echo.websocket.org', {
immediate: false,
})wsgo.open()
```Register an event listener:
```js
import WSGO from 'wsgo'const wsgo = WSGO('wss://echo.websocket.org')
wsgo.subscribe('my-event', (e) => {
console.log(e)
})
```Send the event to the server:
```js
import WSGO from 'wsgo'const wsgo = WSGO('wss://echo.websocket.org')
wsgo.send('my-event', { text: 'Hello world!' })
```Get the original and unmodified Websocket instance:
```js
import WSGO from 'wsgo'const wsgo = WSGO('wss://echo.websocket.org')
const status = wsgo.ws.readyState
```Close the connection:
```js
import WSGO from 'wsgo'const wsgo = WSGO('wss://echo.websocket.org')
wsgo.close()
```### Feedback
WSGO is designed to create a convenient and easy way to interact with WebSocket. We would love to get your ideas on how to make it even better.