# webSocketListener

### **Importing**

```typescript
import { webSocketListener } from '@marblejs/websockets';
```

### **Type declaration**

```typescript
webSocketListener :: WebSocketListenerConfig -> WebSocket.ServerOptions -> ContextReader
```

### **Parameters**

| *parameter* | definition                |
| ----------- | ------------------------- |
| *config*    | `WebSocketListenerconfig` |

#### ***WebSocketListenerConfig***

| *parameter*      | definition                              |
| ---------------- | --------------------------------------- |
| *effects*        | \<optional> `Array<WsEffect>`           |
| *middlewares*    | \<optional> `Array<WsMiddlewareEffect>` |
| *error$*         | \<optional> `WsErrorEffect`             |
| connection$      | \<optional> `WsConnectionEffect`        |
| output$          | \<optional> `WsOutputEffect`            |
| eventTransformer | \<optional> `EventTransformer`          |

### **Example**

{% code title="websocket.listener.ts" %}

```typescript
import { webSocketListener } from '@marblejs/websockets';
import { example$ } from './example.effect';
import { logger$ } from './logger.middleware';

export default webSocketListener({
  middlewares: [logger$],
  effects: [add$],
});
```

{% endcode %}
