首页 > 解决方案 > 从路由控制器 _ express + nodejs + webSocket 向 Web 套接字发布消息

问题描述

我想知道是否可以从路由器控制器级别访问 ws 实例?

这是我的入口点:

// app.js
// .... app configs
const server = createServer(app);

const websocket = new WebSocketServer({ httpServer: server });

websocket.on("request", (request) => {
  let connection = request.accept(null, request.origin);

  connection.on("message", (message) => {
    connection.send("message");
    console.log(message);
  });
  connection.on("close", () => console.log("client closed"));

  return connection

});

我在请求对象中做了一些修改,以便在每个请求对象中访问 ws 实例:

app.use((req, res, next) => {
  req.ws = websocket;
  next();
});

所以我想知道如何发布消息:

req.ws.send({message: "hi"}) 

我用 socket-io 尝试了这个技巧。但在这里我无法访问 ws.send() 函数。

标签: node.jsexpresswebsocketws

解决方案


推荐阅读