socket.io-requests
Version:
Better requests functionality for Socket.io - Server & Client.
99 lines (72 loc) • 1.93 kB
Markdown
# Socket.io Requests
# IN DEVELOPMENT - DO NOT USE!
## _Better requests functionality for Socket.io - Server & Client._
Socket.io Requests is a package for extending the socket instance of Socket.io for better Acknowledgements (Request - Response) functionality.
It creates 2 simple methods for the `socket` instance.
## Features
- Send requests
- Listen to requests and respond
- Set timeout for the request
## Installation
Use [NPM](https://www.npmjs.com/package/socket.io-requests) to install.
```sh
npm i socket.io-requests
```
## Configure:
#### Configure on server
```javascript index.js
const { Server } = require("socket.io");
const io = new Server({
/* options */
});
const SioR = require("socket.io-requests");
io.on("connection", (socket) => {
SioR(socket);
});
```
#### Configure on client
```javascript index.js
const socket = io();
require("socket.io-requests")(socket);
```
## Usage:
#### Send request
```javascript index.js
socket.on("connect", () => {
setTimeout(() => {
socket
.sendRequest("request-channel-name", "data of the request")
.then((res) => {
console.log("res:", res);
})
.catch((err) => {
console.log("err:", err);
});
}, 1000);
});
```
#### Listen to request and send response
```javascript index.js
socket.onRequest("request-channel-name", (data, respond) => {
const response = {
hello: "world!",
};
respond(response);
});
```
#### Send request with custom timeout
- _Timeout is in ms_.
- _Default: 30000_.
```javascript index.js
socket
.sendRequest("request-channel-name", "data of the request", 5000)
.then((res) => {
console.log("res:", res);
})
.catch((err) => {
console.log("err:", err);
});
```
## License
[MIT](https://choosealicense.com/licenses/mit/)
**Free Software, Enjoy!**