1.0.2 • Published 6 months ago

socket.io-ease v1.0.2

Weekly downloads
-
License
-
Repository
-
Last release
6 months ago

Description

Socket.io-ease is a library that provides an abstraction layer on top of socket.io, integrating concepts from other popular libraries such as express.js and adonis.js. It aims to simplify the development of socket.io-based projects by providing a straightforward and well-organized structure.

Installation

To install Socket.io-ease, use either npm or yarn:

npm:

npm install socket.io-ease

yarn:

yarn add socket.io-ease

Usability

Once Socket.io-ease is installed, you can create a SocketServer instance by providing a server object or a port number as a parameter as a socket.io. Here's an example:

import { SocketServer } from "socket.io-ease";

const socketServer = new SocketServer();

You can then add listeners to the server by providing event names and controller functions. Here's an example:

import { SocketServer } from "socket.io-ease";
import server from "src/server";
import controller from "src/controller";

const socketServer = new SocketServer();
socketServer.addListener("example", controller); // listen in "/example" event
/*The server can be from any framework or library 
(express, koa, fastity, adoniss.js) or simply standalone*/
socketServer.start(server);

You can group listeners by using a callback that takes a SocketNode object as a parameter. Here's an example:

import { SocketServer, SocketNode } from "socket.io-ease";
import server from "src/server";
import controller from "src/controller";

const exampleGroup = (node: SocketNode) => {
  node.addListener("example", controller)
}

const socketServer = new SocketServer();
socketServer.addGroup(exampleGroup)
socketServer.start(server);

You can also add a prefix to a group of listeners by providing it as an option. Here's an example:

import { SocketServer, SocketNode } from "socket.io-ease";
import server from "src/server";
import controller from "src/controller";

const exampleGroup = (node: SocketNode) => {
  node.addListener("example", controller, { prefix: "foo" }) //listen in "/bee/foo/example" event
}

const socketServer = new SocketServer();
socketServer.addGroup(exampleGroup, { prefix: "bee" })
socketServer.start(server);

You can use middleware functions to handle incoming requests for a group of listeners as express or adonis. Here's an example:

import { SocketServer, SocketMiddleware, SocketConnection, SocketNext, SocketRequest } from "socket.io-ease";
import server from "src/server";
import controller from "src/controller";

class Middleware implements SocketMiddleware {
  handler: (request: SocketRequest, connection: SocketConnection, next: SocketNext) => {
    //some logic
    next()
  };
}

const exampleGroup = (node: SocketNode) => {
  node.addListener("example", controller, { middlewares: [Middleware] })
}

const socketServer = new SocketServer();
socketServer.addGroup(exampleGroup, { middlewares: [Middleware] })
socketServer.start(server);

Finally, here's an example of a controller function that can be used as a listener:

const controller = (request: SocketRequest, connection: SocketConnection) => { 
    //logic
}
export default controller
1.0.2

6 months ago

1.0.1

6 months ago

0.0.1

2 years ago

1.0.0

2 years ago