[rpclibrary](../README.md) › [Globals](../globals.md) › ["Backend"](../modules/_backend_.md) › [RPCServer](_backend_.rpcserver.md) # Class: RPCServer <**SubResType**> A Websocket-server-on-steroids with built-in RPC capabilities ## Type parameters ▪ **SubResType** ## Hierarchy * **RPCServer** ## Implements * [Destroyable](../interfaces/_interfaces_.destroyable.md) ## Index ### Constructors * [constructor](_backend_.rpcserver.md#constructor) ### Properties * [closeHandler](_backend_.rpcserver.md#private-closehandler) * [connectionHandler](_backend_.rpcserver.md#private-connectionhandler) * [errorHandler](_backend_.rpcserver.md#private-errorhandler) * [exporters](_backend_.rpcserver.md#private-exporters) * [io](_backend_.rpcserver.md#private-io) * [port](_backend_.rpcserver.md#private-port) * [visibility](_backend_.rpcserver.md#private-visibility) * [ws](_backend_.rpcserver.md#private-ws) ### Methods * [destroy](_backend_.rpcserver.md#destroy) * [initRPCs](_backend_.rpcserver.md#protected-initrpcs) * [startWebsocket](_backend_.rpcserver.md#private-startwebsocket) ## Constructors ### constructor \+ **new RPCServer**(`port`: number, `exporters`: [RPCExporter](../interfaces/_interfaces_.rpcexporter.md)‹SubResType›[], `conf`: T.SocketConf): *[RPCServer](_backend_.rpcserver.md)* Defined in Backend.ts:22 **`throws`** On RPC with no name **Parameters:** Name | Type | Default | Description | ------ | ------ | ------ | ------ | `port` | number | - | The port to listen on | `exporters` | [RPCExporter](../interfaces/_interfaces_.rpcexporter.md)‹SubResType›[] | [] | A list of [RPCExporter](../interfaces/_interfaces_.rpcexporter.md) to publish | `conf` | T.SocketConf | {} | A [SocketConf](../modules/_types_.md#socketconf) object with optional settings | **Returns:** *[RPCServer](_backend_.rpcserver.md)* ## Properties ### `Private` closeHandler • **closeHandler**: *T.CloseHandler* Defined in Backend.ts:20 ___ ### `Private` connectionHandler • **connectionHandler**: *T.ConnectionHandler* Defined in Backend.ts:22 ___ ### `Private` errorHandler • **errorHandler**: *T.ErrorHandler* Defined in Backend.ts:21 ___ ### `Private` exporters • **exporters**: *[RPCExporter](../interfaces/_interfaces_.rpcexporter.md)‹SubResType›[]* Defined in Backend.ts:32 A list of [RPCExporter](../interfaces/_interfaces_.rpcexporter.md) to publish ___ ### `Private` io • **io**: *any* = bsock.createServer() Defined in Backend.ts:18 ___ ### `Private` port • **port**: *number* Defined in Backend.ts:31 The port to listen on ___ ### `Private` visibility • **visibility**: *T.Visibility* Defined in Backend.ts:19 ___ ### `Private` ws • **ws**: *Server* = http.createServer() Defined in Backend.ts:17 ## Methods ### destroy ▸ **destroy**(): *Promise‹void›* *Implementation of [Destroyable](../interfaces/_interfaces_.destroyable.md)* Defined in Backend.ts:89 **Returns:** *Promise‹void›* ___ ### `Protected` initRPCs ▸ **initRPCs**(`socket`: [Socket](../interfaces/_interfaces_.socket.md)): *void* Defined in Backend.ts:82 **Parameters:** Name | Type | ------ | ------ | `socket` | [Socket](../interfaces/_interfaces_.socket.md) | **Returns:** *void* ___ ### `Private` startWebsocket ▸ **startWebsocket**(): *void* Defined in Backend.ts:66 **Returns:** *void*