Skip to content

A simple, extensible node.js websocket server

License

Notifications You must be signed in to change notification settings

andy-blum/ddev-websocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DDEV Websocket

This add-on for DDEV provides a simple, extensible websocket server. This server allows developers to send/receive messages between the browser and the server without the need for a page refresh.

Installation

To install this add-on, run the following command:

ddev add-on get ddev/ddev-websocket
ddev restart

Plugins

Plugins are JavaScript files that can be added to the .ddev/js/plugins directory. Each plugin may export functions for the following events:

  • onConnection: Called when a new connection is established.
  • onMessage: Called when a message is received from the client.
  • onError: Called when an error occurs.
  • onClose: Called when the connection is closed.

Plugins do not need to implement all of these functions, all are opt-in. Each function is called with the individual connection as this, and the WebSocketServer instance as the first argument.

A sample plugin pong.example.js is provided in the .ddev/js/plugins directory, and by default is loaded by the server on startup:

Usage

The websocket server is available at http://<project-name>.ddev.site:8080, and is created using the ws package. Connections are initialized in the browser using the WebSocket constructor:

const ws = new WebSocket('wss://<project-name>.ddev.site:8080');

To use the pong plugin, run the following command in your browser's console:

const ws = new WebSocket('wss://<project-name>.ddev.site:8080');
ws.onmessage = ({data}) => console.log(data);
// "pong connected"

ws.send('ping');
// "pong"

ws.send('ping all');
// "pong"
// (appears in all connected clients)

ws.close();
// View ddev logs

To view the server logs as you communicate back and forth, run the following command:

ddev logs -s websocket -f

About

A simple, extensible node.js websocket server

Topics

Resources

License

Stars

Watchers

Forks