【问题标题】:Run Rest And Socket in Same Server in Node.js在 Node.js 的同一服务器中运行 Rest 和 Socket
【发布时间】:2021-04-30 14:38:44
【问题描述】:

这是我的app.js,我想同时执行(套接字/休息)但是当我从我的客户端发出一些东西时,套接字没有连接,尽管它在 chrome ws 中显示 101 状态。谁能帮我看看这段代码有什么问题?

这是我的 app.js

const express = require("express");
const app = express();
const indexRouter = require("./routes/index");
const apiRouter = require("./routes/api");
var server = require('http').createServer(app);
// var memcached = require('memcached');
// var mmc = new memcached('localhost:1121', {retries:10,retry:10000,remove:true});
var io = require('socket.io')(server);
const port = process.env.PORT || 3000;
const cors = require("cors");

app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cors());

app.use("/", indexRouter); 
app.use("/api", apiRouter);  
require("./app/router/login.router")(app);
require("./app/router/match.router")(app);
require("./app/router/competetion.router")(app);

server.listen(port,() => {
  var host = server.address().address
  var port = server.address().port
  console.log(`Admin listening on port ${port}!`);
});

io.on('connection', (socket) => {
  console.log('12---------12');
  socket.on("test" , (data) => {
    console.log('test', data);
  })
});

// -- @ socket manual --


// -- @ socket ends ---

当我发出一些东西时,它显示 101 状态但根本没有发出任何东西

谢谢!

【问题讨论】:

    标签: node.js express sockets


    【解决方案1】:

    当考虑到唯一的问题是连接到套接字 io 时,您的代码应该在客户端和服务器之间建立双向连接,并且确实如此。

    101 消息表示switching protocols

    因此,如果您在名为 test 的事件上发出消息,您的服务器将捕获它。

    问题出在您的客户端,尝试任何现成的工具,如 this 或其他任何工具来独立测试您的套接字 io 服务器

    【讨论】:

    • 我用这个工具和它的连接进行测试。现在我有一个清晰的愿景去哪里了!谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    相关资源
    最近更新 更多