NodeJS、ExpressJS、およびルーティングコントローラを使用して簡単なREST APIを実装しました。また、REST APIと一緒に実行され、WSを使用する基本WebSocketサーバーを実装しました。NodeJS + WSアクセスで現在WSサーバインスタンスが実行中
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");
});
私の質問は、私は私のコントローラメソッドからsend
またはbroadcast
にできていますように、私は、現在実行中のWSインスタンスへのアクセスを取得する方法です。私は多くのPOST
メソッドを使用して長いプロセスを実行し、HTTP 200をクライアントに返すので、接続されたすべてのWSクライアントにsend
またはbroadcast
のいずれかを送信します。
コントローラークラス内からWebSocket.Server
インスタンスにアクセスする正しい方法は何ですか?