NodeJS + WS访问当前运行的WS服务器实例

时间:2017-11-24 09:55:24

标签: node.js typescript express websocket

我使用NodeJS,ExpressJS和路由控制器实现了一个简单的REST API。我还实现了一个与REST API一起运行并使用WS的基本WebSocket服务器。

const app = express();

app.use(bodyParser.json({limit: "50mb"}));
app.use(bodyParser.urlencoded({limit: "50mb", extended: true}));

useExpressServer(app, {
    controllers: [
        UserController
    ]
});

const server = app.listen(21443, (err: Error) => {
    console.log("listening on port 21443");
});

const wss = new WebSocket.Server({server});

wss.on("connection", (ws: WebSocket) => {
    ws.on("message", (message: string) => {
        console.log("received: %s", message);
        ws.send(`Hello, you sent -> ${message}`);
    });

    ws.send("Hi there, I am a WebSocket server");
});

我的问题是如何访问当前运行的WS实例,以便能够从我的控制器方法sendbroadcast。我有许多运行长进程的POST方法,因此将HTTP 200返回给客户端,然后我希望sendbroadcast连接到所有连接的WS客户端。

从我的控制器类中访问WebSocket.Server实例的正确方法是什么?

0 个答案:

没有答案