首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用自定义NextJS服务器创建Websocket

使用自定义NextJS服务器创建Websocket
EN

Stack Overflow用户
提问于 2022-09-18 06:46:19
回答 1查看 77关注 0票数 0

我正在运行带有自定义服务器的NextJS应用程序,以便在前端和自定义后端之间建立websocket

以下是自定义服务器:

代码语言:javascript
运行
复制
const express = require("express");
const next = require("next");
const emitter = require("./lib/eventEmitter");

const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const handle = app.getRequestHandler();
const server = express();
const http = require('http')
const socketIo = require("socket.io");
const wbServer = http.createServer(server)

const io = socketIo(wbServer);

io.on("connection", (socket) => {
  console.log("client connected: ", socket.id);
});

app.prepare().then(() => {

  server.all("*", (req, res) => {
    return handle(req, res);
  });

  server.listen(port, () => {
    console.log(`> Ready on http://localhost:${port}`);
  });
});

以下是前端连接:

代码语言:javascript
运行
复制
  useEffect(() => {
    (async () => {
      let socket = io("http://localhost:3000");

      socket.on("connected", () => {
        console.log("Connected");
      });
    })();
  });

但它并没有将React显示为这样的404错误:

代码语言:javascript
运行
复制
XHR GET http://localhost:3000/socket.io?EIO=4&transport=polling&t=ODFLYBM
[HTTP/1.1 404 Not Found 8ms]
EN

回答 1

Stack Overflow用户

发布于 2022-09-18 14:31:24

答案是听wbServer而不是像这样的server

代码语言:javascript
运行
复制
const server = require("http").Server(app);

server.listen(port, () => {
  console.log(`> Ready on http://localhost:${port}`);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73760650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档