thread-sse
Version:
Thread-SSE is a library for Node.js and web browsers to develop security and high-performance SSE (Server-Send-Events) applications.
147 lines (80 loc) • 4.42 kB
Markdown
<p align="center">
<img width="200" height="175" src="https://www.w3plan.net/images/tsse-logo-200x175.jpg">
</p>
### Thread-SSE
------------
Thread-SSE is a library for Node.js and web browsers to develop security and high-performance SSE (Server-Send-Events) applications.
### Features
------------
- Based on Node.js built-in modules, supports HTTP, HTTPS, and HTTP/2 protocols, being compatible with most web browsers, faster real-time communication.
- One SSE server-side only connects one Thread-SSE client, and one web browser has one Thread-SSE connection.
- Validates SSE data at the time of data sending and data receiving.
- Thread-SSE data includes a data id and data with defined types, the developer can create client actions to an SSE data or directly using system default client actions.
- The members of the user group can send and receive data via SSE.
- Thread-SSE is extendable and customizable.
### Installation of Thread-SSE package and environment
------------
Runs the following commands from the directory of your project.
1<span>.</span> Installs Thread-SSE
` npm install thread-sse `
2<span>.</span> Installs Thread-SSE environment
` node ./node_modules/thread-sse/postinstall `
### Using examples
------------
```javascript
// Responds Thread-SSE client library
libStyleGraph(request, response, "/public/js/tsse.js");
// Responds custom client library
libStyleGraph(request, response, "/public/js/custom-tsse.js");
// Responds the Thread-SSE client
responseClient(request, response, content);
// Handles Thread-SSE connection request
setTsseConnection(request, response);
// Starts Thread-SSE server for the specific client
tsseServer(tsseServicePath, response);
// Sends a Thread-SSE data
updateTsseData(tsseServicePath, tsseUser, "1000", "Sending Thread SSE Data");
// Sends a custom Thread-SSE data
updateTsseData(tsseServicePath, tsseUser, "4050", "Joanne Whalley", "(647) 823-7580");
// Sends shared Thread-SSE data to members of the group
updateGroupTsseData(request, response, members);
```
### Tests
------------
Runs the test server:
` node ./node_modules/thread-sse/test/server `
Then runs testing with http://<span></span>localhost:3000/test/index.html from web browsers.
### Demo applications
------------
postinstall.js installed Thread-SSE demo applications in the folder of Thread-SSE project, the demo applications include:
**server-http.js**
The example application of Thread-SSE server over HTTP protocol.
**cluster-server-http.js**
The example application that clusters Thread-SSE server over HTTP protocol to take advantage of multi-core systems.
**server-https.js**
The example application of Thread-SSE server over HTTPS protocol.
**server-http2.js**
The example application of Thread-SSE server over HTTP/2 protocol.
**server-express.js**
The example application of Thread-SSE server with Express over HTTP protocol.
**server-express-https.js**
The example application of Thread-SSE server with Express over HTTPS protocol.
Starts demo Thread-SSE server then access the application from http://<span></span>localhost:3000/client.html
### Developing Thread-SSE application
------------
**Develops the access control to Thread-SSE data**
Overrides methods of AccessControl class from ./custom/access-control.js, managing users and user group with the authentication used by your project.
**Creates custom validation**
Creates custom validation for server-side data sending from ./custom/validation.js and the data receiving of the web browsers from ./js/custom-tsse.js if you defined custom data to your project.
**Writes client actions**
Writes your client actions in the function tsseAction(id, dt, bulk, tag) from ./js/custom-tsse.js, the arguments of tsseAction are data sent by Thread-SSE server.
**Sends shared data**
Sends shared data with sendSharedTsseData and assigns it as a browser event handler in ./js/custom-tsse.js
**Updates SSL/TLS certificate and private key files**
Updates SSL/TLS certificate and private key files in ./custom folder for the product of your project.
### Documentation
------------
To see [Thread-SSE documentation](https://github.com/w3plan/thread-sse/blob/master/doc/document.md)
### License
------------
MIT