Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chickendevlab/cluster-eventdispatcher
Event dispatcher, which sends events to all processes (master and workers) and can handle them in all processes.
https://github.com/chickendevlab/cluster-eventdispatcher
cluster clustering clusters es6 es6-javascript event eventdispatcher eventemitter eventlistener events express express-js expressjs javascript node node-js nodejs npm npm-package npmjs
Last synced: 4 days ago
JSON representation
Event dispatcher, which sends events to all processes (master and workers) and can handle them in all processes.
- Host: GitHub
- URL: https://github.com/chickendevlab/cluster-eventdispatcher
- Owner: chickendevlab
- License: mit
- Created: 2021-03-15T09:33:36.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-03-17T08:52:41.000Z (over 3 years ago)
- Last Synced: 2024-09-28T15:21:31.281Z (4 days ago)
- Topics: cluster, clustering, clusters, es6, es6-javascript, event, eventdispatcher, eventemitter, eventlistener, events, express, express-js, expressjs, javascript, node, node-js, nodejs, npm, npm-package, npmjs
- Language: JavaScript
- Homepage: https://chickendevlab.github.io/cluster-eventdispatcher
- Size: 476 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cluster-eventdispatcher
Small and simple EventDispatcher, which executes events in **all processes**.
## Install
```
npm i --save cluster-eventdispatcher
```
## How to use
1. Create an instance of Eventdispatcher (whether in the master or in a worker):
```js
const EventDispatcher = require('cluster-eventdispatcher')/* ... */
const dispatcher = new EventDispatcher()
```
2. Listen to events:
```js
dispatcher.on('eventname', eventdata => {
/* Do what you want*/
})/* OR */
dispatcher.once('eventname', eventdata => {
/* Do what you want*/
})```
3. Dispatch Events:
```js
dispatcher.dispatch('eventname', {
/* your data here */
})
```
## Documentation
Documentation is either available online at [Github Pages](chickendevlab.github.io/cluster-eventdispatcher) or can be generated using:
```
npm i
npm run doc
```
## Full ExampleFile is also available in the `example` directory
```js
const EventDispatcher = require('cluster-eventdispatcher')
const cluster = require('cluster')
const express = require('express')const app = express()
if(cluster.isMaster){
const dispatcher = new EventDispatcher()
for(let i = 0; i < require('os').cpus().length; i++){
const worker = cluster.fork()
dispatcher.initWorker(worker)
}
dispatcher.on('call', data => {
console.log('/ was called: ', data)
dispatcher.dispatch('response', 'hello')
})
} else {
const dispatcher = new EventDispatcher()dispatcher.on('response', data => console.log(data))
app.get('/', (req, res) => {
res.send('cluster-eventdispatcher example')
dispatcher.dispatch('call', {
someData: 'data'
})
})app.listen(8080)
}
```