Skip to content

Function: socketOfContext() ​

socketOfContext(context): Socket<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any> | undefined

Get the socket.io socket that sent a service action's request, when socketIOServiceEntrypoint serves it (to read its handshake, join it to rooms, emit to it…).

Parameters ​

context ​

ServiceContext

The service action's context (this.context in a controller).

Returns ​

Socket<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any> | undefined

The socket, or undefined when another adapter serves the request.

Example ​

typescript
import {Controller, ServiceContext} from 'lakutata/com/entrypoint'
import {ServiceAction} from 'lakutata/decorator/ctrl'
import {socketOfContext} from 'lakutata/adapter/socket.io'

class RoomController extends Controller {
    //socket.emit('message', {cmd: 'room.join', room: 'lobby'}, (response) => …)
    @ServiceAction({cmd: 'room.join'})
    public async join(input: {room: string}): Promise<void> {
        await socketOfContext(this.context as ServiceContext)?.join(input.room)
    }
}

Released under the MIT License.