如何在node端添加mqtt的用户名密码?

服务端通过emqx启动了一个mqtt的服务,通过username、password进行连结。
前端使用mqtt.js库配合连结

经测试,在前端天界username password 连结一切正常。

但现在有个需求是不想在前端暴露username password,那么我的想法是在node端转发,在转发时进行添加,但是无论如何找不到添加的位置,也抓不到前端传递的username password参数,请问如何在node端完成username password参数的添加?

代码如下
mqtt.vue

var socketUrl = "http://"+location.host+ "/mqtt";
console.log('socketUrl == ',socketUrl);
mqttHook.reconnect(socketUrl,{
    keepalive: 60,
    clientId: `mqtt_client_${Math.random().toString(16).substring(2, 10)}`,
    connectTimeout: 4000,
    username:'admini',
    password:'admini@123'
});

webpack.proxy

const wsProxy = createProxyMiddleware('/mqtt',{ 
    target: 'ws://10.10.2.103:8083',
    changeOrigin: true ,
    ws:true,
    auth:'admini:admini@123',
    query:{username:'admini',password:'admini@123'},
    on: {
        proxyReq: fixRequestBody,
    },
    onProxyReqWs: ( proxyReq, req, socket, options, head ) => {
    }
});

setupMiddlewares :  ( middlewares, devServer ) => {
      if (! devServer ) {
        throw new Error ( 'webpack-dev-server is not defined' );
      }
      devServer.app.use( express.json());
      devServer.app.use( express.urlencoded({ extended: false }));
      const server = devServer.app.use(wsProxy);
      devServer.app.listen();
      server.on('upgrade', wsProxy.upgrade);
      return middlewares;
    },
阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题