[rpclibrary](../README.md) › [Globals](../globals.md) › ["Frontend"](../modules/_frontend_.md) › [RPCSocket](_frontend_.rpcsocket.md) # Class: RPCSocket A websocket-on-steroids with built-in RPC capabilities ## Hierarchy * **RPCSocket** ## Implements * [Socket](../interfaces/_interfaces_.socket.md) ## Index ### Constructors * [constructor](_frontend_.rpcsocket.md#constructor) ### Properties * [port](_frontend_.rpcsocket.md#port) * [server](_frontend_.rpcsocket.md#private-server) * [socket](_frontend_.rpcsocket.md#private-socket) * [tls](_frontend_.rpcsocket.md#private-tls) ### Methods * [call](_frontend_.rpcsocket.md#call) * [callGenerator](_frontend_.rpcsocket.md#private-callgenerator) * [close](_frontend_.rpcsocket.md#close) * [connect](_frontend_.rpcsocket.md#connect) * [destroy](_frontend_.rpcsocket.md#destroy) * [fire](_frontend_.rpcsocket.md#fire) * [hook](_frontend_.rpcsocket.md#hook) * [hookGenerator](_frontend_.rpcsocket.md#private-hookgenerator) * [info](_frontend_.rpcsocket.md#info) * [on](_frontend_.rpcsocket.md#on) * [unhook](_frontend_.rpcsocket.md#unhook) ## Constructors ### constructor \+ **new RPCSocket**(`port`: number, `server`: string, `tls`: boolean): *[RPCSocket](_frontend_.rpcsocket.md)* Defined in Frontend.ts:20 **Parameters:** Name | Type | Default | Description | ------ | ------ | ------ | ------ | `port` | number | - | Port to connect to | `server` | string | - | Server address | `tls` | boolean | false | @default false use TLS | **Returns:** *[RPCSocket](_frontend_.rpcsocket.md)* ## Properties ### port • **port**: *number* *Implementation of [Socket](../interfaces/_interfaces_.socket.md).[port](../interfaces/_interfaces_.socket.md#port)* Defined in Frontend.ts:28 Port to connect to ___ ### `Private` server • **server**: *string* Defined in Frontend.ts:28 Server address ___ ### `Private` socket • **socket**: *[Socket](../interfaces/_interfaces_.socket.md)* Defined in Frontend.ts:20 ___ ### `Private` tls • **tls**: *boolean* Defined in Frontend.ts:28 @default false use TLS ## Methods ### call ▸ **call**(`rpcname`: T.Name, ...`args`: T.Any[]): *Promise‹T.Any›* Defined in Frontend.ts:77 Trigger a hooked handler on the server **Parameters:** Name | Type | Description | ------ | ------ | ------ | `rpcname` | T.Name | The function to call | `...args` | T.Any[] | other arguments | **Returns:** *Promise‹T.Any›* ___ ### `Private` callGenerator ▸ **callGenerator**(`fnName`: T.Name, `fnArgs`: T.Arg[]): *T.AsyncFunction* Defined in Frontend.ts:126 Utility [AsyncFunction](../modules/_types_.md#asyncfunction) generator **Parameters:** Name | Type | Description | ------ | ------ | ------ | `fnName` | T.Name | The function name | `fnArgs` | T.Arg[] | A string-list of parameters | **Returns:** *T.AsyncFunction* ___ ### close ▸ **close**(): *void* *Implementation of [Socket](../interfaces/_interfaces_.socket.md)* Defined in Frontend.ts:68 Closes the socket. It may attempt to reconnect. **Returns:** *void* ___ ### connect ▸ **connect**(): *Promise‹void›* Defined in Frontend.ts:93 Connects to the server and attaches available RPCs to this object **Returns:** *Promise‹void›* ___ ### destroy ▸ **destroy**(): *void* *Implementation of [Socket](../interfaces/_interfaces_.socket.md)* Defined in Frontend.ts:61 Destroys the socket **Returns:** *void* ___ ### fire ▸ **fire**(`rpcname`: T.Name, ...`args`: T.Any[]): *Promise‹void›* Defined in Frontend.ts:86 An alternative to call that does not wait for confirmation and doesn't return a value. **Parameters:** Name | Type | Description | ------ | ------ | ------ | `rpcname` | T.Name | The function to call | `...args` | T.Any[] | other arguments | **Returns:** *Promise‹void›* ___ ### hook ▸ **hook**(`name`: T.Name, `handler`: function): *[Socket](../interfaces/_interfaces_.socket.md)* Defined in Frontend.ts:37 Hooks a handler to a function name. Use [call](_frontend_.rpcsocket.md#call) to trigger it. **Parameters:** ▪ **name**: *T.Name* The function name to listen on ▪ **handler**: *function* The handler to attach ▸ (...`args`: any[]): *any | Promise‹any›* **Parameters:** Name | Type | ------ | ------ | `...args` | any[] | **Returns:** *[Socket](../interfaces/_interfaces_.socket.md)* ___ ### `Private` hookGenerator ▸ **hookGenerator**(`fnName`: T.Name, `fnArgs`: T.Arg[]): *T.HookFunction* Defined in Frontend.ts:137 Utility [HookFunction](../modules/_types_.md#hookfunction) generator **Parameters:** Name | Type | Description | ------ | ------ | ------ | `fnName` | T.Name | The function name | `fnArgs` | T.Arg[] | A string-list of parameters | **Returns:** *T.HookFunction* ___ ### info ▸ **info**(): *Promise‹any›* Defined in Frontend.ts:117 Get a list of available RPCs from the server **Returns:** *Promise‹any›* ___ ### on ▸ **on**(`type`: "error" | "close", `f`: function): *[Socket](../interfaces/_interfaces_.socket.md)* Defined in Frontend.ts:54 Attach a listener to error or close events **Parameters:** ▪ **type**: *"error" | "close"* 'error' or 'close' ▪ **f**: *function* The listener to attach ▸ (`e?`: any): *void* **Parameters:** Name | Type | ------ | ------ | `e?` | any | **Returns:** *[Socket](../interfaces/_interfaces_.socket.md)* ___ ### unhook ▸ **unhook**(`name`: T.Name): *[Socket](../interfaces/_interfaces_.socket.md)* Defined in Frontend.ts:45 Removes a [hook](_frontend_.rpcsocket.md#hook) listener by name. **Parameters:** Name | Type | Description | ------ | ------ | ------ | `name` | T.Name | The function name | **Returns:** *[Socket](../interfaces/_interfaces_.socket.md)*