升级事件未触发

问题描述

我有这个 nodejs/express 应用程序,它在 unix 套接字上运行(侦听)。应用程序 websockets 使用单独的端口 8020,它通过 Nginx 升级标头以启用 websocket 连接。一切都按要求工作。

现在,我想捕获一个升级时”事件,以便稍后检查用户会话并防止未经授权的用户访问 websocket。

但是我的升级事件没有触发,我做错了什么?

// EXPRESS
const express = require('express');
const app = express();

// FILE
const fs = require('fs');

// UNIX
const port = '/home/user/web/mydomain.com/nodeapp/app.sock';
const hostname = 'mydomain.com';

// SSL
var options = {

  key: fs.readFileSync('/home/user/conf/web/mydomain.com/ssl/mydomain.com.key'),cert: fs.readFileSync('/home/user/conf/web/mydomain.com/ssl/mydomain.com.pem')

};

// SERVER
const https = require('https');

const server = https.Server(options,app);
// Server(options,app);

// WS
const WebSocket = require('ws');
const wss = new WebSocket.Server({ noServer : true,port: 8020 });

// PATH
var path = require('path');
const froot = path.join(__dirname,'../public_html/');

// SITES
app.get('/',async function (req,res) {
  
  // let wss = req.app.wss;
  
  res.sendFile(froot+'index.html');

});

// WS
wss.on('connection',function connection(ws,request,client) {

  console.log('user connected');

  ws.on('close',function close() {
    console.log('disconnected');
  });

});

// WS AUTH

server.on('upgrade',function upgrade(request,socket,head) {

  console.log('upgrade happened!');

});

// SERVER START
server.listen(port,hostname,() => {

  console.log(`Example app listening at https://localhost:${port}`);

});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)