@hapiness/core
Version:
Project to have a HapiJS (https://hapijs.com/) based framework to create easier NodeJS back-end with some awesome features
81 lines (80 loc) • 2.02 kB
TypeScript
/// <reference types="node" />
import { Observable, Subject } from 'rxjs/Rx';
import { server, request } from 'websocket';
import { Socket } from './socket';
import { SocketConfig } from './extension';
import * as http from 'http';
import * as https from 'https';
export declare class WebSocketServer {
private config;
private server;
private connections$;
private sockets;
private httpServer;
private rooms;
private secure;
constructor(config: SocketConfig);
start(): void;
/**
* Close all sockets and close http server
*
* @returns Observable
*/
stop(): Observable<boolean>;
/**
* Get Http Server Extension instance
* @FIXME Just take the first HapiJS connection for now
*/
private getHttpServerExt();
/**
* Create Http Server for websocket
*
* @returns http
*/
private createHttpServer();
/**
* Resquest handler
* Accept the request
*
* @param {request} _request
*/
private onRequestHandler(_request);
/**
* Configure a secure callback
* to accept/reject requests
*
* @param {(request:request)=>Observable<boolean>} secure
* @returns Subject
*/
configure(secure: (request: request) => Observable<boolean>): Subject<Socket>;
/**
* Get connections Subject
*
* @returns Subject
*/
connections(): Subject<Socket>;
/**
* Get active sockets
*
* @returns Socket
*/
getSockets(): Socket[];
/**
* Broadcast data into active sockets
*
* @param {string} event
* @param {any} data
*/
broadcast(event: string, data: any): void;
/**
* Send a message to all sockets present in a room
*
* @param {string} room
* @param {string} event
* @param {any} data
* @returns WebSocketServer
*/
to(room: string, event: string, data: any): this;
getServer(): server;
getHttpServer(): http.Server | https.Server;
}