mudb
Version:
Real-time database for multiplayer games
74 lines (53 loc) • 1.95 kB
Markdown
# local-socket
network socket emulation for development purpose
In `local-socket`, no real network connections are established so no Web servers are needed, meaning applications using `local-socket` can run entirely in a browser. It can make your life easier:
* you can forget about restarting the server on changes
* you can debug using the dev tools provided by browsers
## example
```ts
import { MuServer, MuClient } from 'mudb'
import { createLocalSocketServer, createLocalSocket } from 'mudb/socket/local'
const socketServer = createLocalSocketServer()
const server = new MuServer(socketServer)
const socket = createLocalSocket({
sessionId: Math.random().toString(16).substring(2),
server: socketServer,
})
const client = new MuClient(socket)
```
## API
* [`createLocalSocketServer()`](#createlocalsocketserver())
* [`createLocalSocket()`](#createlocalsocket())
* [`MuLocalSocketServer`](#mulocalsocketserver)
* [`MuLocalSocket`](#mulocalsocket)
Use the factory functions instead of the constructors.
### `createLocalSocketServer()`
Creates a pseudo socket server.
```ts
createLocalSocketServer(spec?:{
scheduler?:MuScheduler,
}) : MuLocalSocketServer
```
* `scheduler` can be set to a [`MuMockScheduler`](../../scheduler/README#mumockscheduler) for testing
### `createLocalSocket()`
Creates a "connection" to the socket server passed in, and returns the socket.
```ts
createLocalSocket(spec:{
sessionId:string,
server:MuLocalSocketServer,
scheduler?:MuScheduler,
}) : MuLocalSocket
```
* `sessionId` a user-generated session id
* `server` the server returned by `createLocalSocketServer()`
* `scheduler` can be set to a [`MuMockScheduler`](../../scheduler/README#mumockscheduler) for testing
### `MuLocalSocketServer`
implements [`MuSocketServer`](../README#musocketserver)
A pseudo socket server.
### `MuLocalSocket`
implements [`MuSocket`](../README#musocket)
A pseudo socket.