Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

262
Views
Cómo obtener una referencia al servidor Nextjs

Estoy tratando de utilizar ws (socket web) en mi aplicación Nextjs.

En lugar de crear un nuevo servidor, quiero pasar el objeto del servidor actual a la inicialización de ws:

 const { Server } = require('ws'); wss = new Server({ myNextJs server instance here ... });

Entonces: ¿cómo obtener una referencia al servidor Nextjs en tiempo de ejecución?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede crear un servidor personalizado. Consulte https://nextjs.org/docs/advanced-features/custom-server

Aquí hay un ejemplo:

 const express = require("express"); const next = require("next"); const dev = process.env.NODE_ENV !== "production"; const app = next({ dev }); const handle = app.getRequestHandler(); const server = express(); app.prepare().then(() => { server.get("/some-random-path", (req, res) => res.send("Hello, world!")); server.get("*", (req, res) => handle(req, res)); server.listen(3000, "0.0.0.0", () => { console.log("Application started on http://localhost:3000"); }); });

Luego simplemente ejecute su nuevo archivo de servidor

over 4 years ago · Santiago Trujillo Report

0

puede fusionar el código de mi respuesta sobre socket.io

https://stackoverflow.com/a/62547135/2068876

con el ejemplo dado en Github:

https://github.com/websockets/ws#multiple-servers-sharing-a-single-https-server

intente algo como esto (no probado, pero parece válido ya que el principio es el mismo):

./pages/api/wss1.js

 import { WebSocketServer } from "ws"; const wss1Handler = (req, res) => { if (!res.socket.server.wss1) { console.log("*First use, starting wss1"); const wss1 = new WebSocketServer({ noServer: true }); res.socket.server.on("upgrade", function upgrade(request, socket, head) { wss1.handleUpgrade(request, socket, head, function done(ws) { wss1.emit('connection', ws, request); }); }); res.socket.server.wss1 = wss1; } else { console.log("wss1 already running"); } res.end(); } export const config = { api: { bodyParser: false } } export default wss1Handler;
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!