Skip to content

[Nitro][Nuxt3] How to get nitro handler's event inside socket events #5021

Answered by darrachequesne
xiaosasori asked this question in Q&A
Discussion options

You must be logged in to vote

Hi! I think the easiest way is to keep a reference to the event.context object on the req object:

import type { NitroApp } from "nitropack";
import { Server as Engine } from "engine.io";
import { Server } from "socket.io";
import { defineEventHandler } from "h3";

export default defineNitroPlugin((nitroApp: NitroApp) => {
  const engine = new Engine();
  const io = new Server();

  io.bind(engine);

  io.on("connection", (socket) => {
    const context = socket.request.context;
  });

  nitroApp.router.use("/socket.io/", defineEventHandler({
    handler(event) {
      event.node.req.context = event.context;
      engine.handleRequest(event.node.req, event.node.res);
      event._handled = t…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by xiaosasori
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants