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
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)
}
}