UNPKG

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
<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