在 webpack 重新编译时触发 websocket 服务器发送给客户端

Trigger websocket server to send to the client on webpack recompile

我有一个快速服务器,我想在其中加入一个 websocket。我在监视模式下使用 webpack 和 运行。每次webpack修改后重新编译我都想在websockt上发消息

我试过让 websocket 服务器监听一个事件,然后在 webpack 重新编译时发出该事件,但没有成功。我无法获得 ws 的句柄来调用 send 函数。

下面是我的服务器代码的简化版本。任何帮助将不胜感激。

const express = require("express");
const https = require("https");
const webpack = require("webpack");
const { Server: WebSocketServer } = require("ws");

const app = express();

// Create HTTPS server using the certificate
const server = https
  .createServer(
    {
      key,
      cert,
    },
    app
  )
  .listen(443);

// Use external server as per https://www.npmjs.com/package/ws#external-https-server
const wsServer = new WebSocketServer({ server });
wsServer.on("connection", (socket, request) => {
  console.log("Client has connected");
});

// Run webpack --watch
webpack(configuration).watch(
  {
    /* watchOptions */
  },
  (err, stats) => {
    console.log(
      stats.toString({
        chunks: false,
        colors: true,
      })
    );
    logInColour("green", "✅ Server is up and running");
    // TODO: Send a message using the websocket
  }
);

我使用了错误的术语,导致很难从文档中找到答案或帮助。我想要的功能是广播。

我通过在 TODO

的位置添加以下代码设法实现了我想要的
wsServer.clients.forEach(client => client.send('Webpack has recompiled'));