MQTT之https页面请求问题

news/2024/11/25 17:36:32/

网站开启了https,开始总会遇到各种问题,用户登入认证失败,视频请求失败,mqtt连接失败等问题。是不是很不爽,来看看,教你怎么解决这些问题。
1.网站开启https,mqtt连接失败
解决过程,开启activemq的ssl加密传输,前端直接请求wss://192.168.1.10:6165,注意6165是我开启了mqtt的ssl端口

        <!--The transport connectors expose ActiveMQ over a given protocol toclients and other brokers. For more information, see:http://activemq.apache.org/configuring-transports.html--><transportConnectors><!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><!--     <transportConnector name="wss" uri="wss://0.0.0.0:61615?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>  --></transportConnectors><!-- destroy the spring context on shutdown to stop jetty --><shutdownHooks><bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /></shutdownHooks><!--  <sslContext><sslContext keyStore="file:${activemq.conf}/broker1.ks"keyStorePassword="adminadmin" trustStore="file:${activemq.conf}/broker1.ts"trustStorePassword="adminadmin"/></sslContext>--></broker>

此方案最后失败了。

解决方案
借鉴用户认证思想,使用nginx反向代理到没有开启ssl的mqtt服务器
网站前端mqtt请求:wss://192.168.1.10/mqtt/

<template><div class="hello"><p>MQTT:{{msg}}</p><button @click="handleclick">发布</button></div>
</template><script>
import mqtt from 'mqtt'export default {name: 'HelloWorld',data() {return {mtopic: "mqtt_topic",msg: "test-test-test!",client: {}};},mounted() {this.client = mqtt.connect('wss://192.168.1.10/mqtt/', {username: "88888888",password: "88888888"});this.client.on("connect", () =>{console.log("连接成功");this.client.subscribe(this.mtopic, (err)=> {if (!err) {console.log("订阅成功:" + this.mtopic);}});});this.client.on("message", (topic, message) => {this.msg = message});},methods: {handleclick: function() {this.client.publish(this.mtopic, this.msg);}}
}
</script>
<style scoped>
</style>

nginx反向代理配置

          location /mqtt/ {proxy_pass http://192.168.1.10:61614/;proxy_set_header   Host             $host;proxy_set_header   X-Real-IP        $remote_addr;proxy_set_header   X-Forwarded-For  $remote_addr;proxy_set_header   X-Forwarded-Proto http;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}

http://www.ppmy.cn/news/507304.html

相关文章

HDU - 6165

题目链接&#xff1a;HDU - 6165 显然可以n次bfs&#xff0c;求连通性。但是时间卡得很紧。 这里我们可以 O(nm)的复杂度解决。 先缩点变成DAG&#xff0c;然后缩点的图上跑Top&#xff0c;如果某一时刻&#xff0c;一个点可以让两个及以上的点度为0&#xff0c;那么显然就无…

hdu6155

Subsequence Count 题目链接 ccpc网络赛1006 题意是给一个01字符串&#xff0c;然后有2种操作&#xff0c; 1、把l到r这个区间的字符翻转&#xff0c; 2、查询l到r这个区间有多少个不同的子序列&#xff0c;&#xff08;注意是子序列&#xff0c;可不连续&#xff09;&…

IEC61850

IEC 61850是关于变电站自动化系统结构和数据通信的国际标准&#xff0c;目的是使变电站内不同厂家的智能电子设备(IED)之间通过一种标准实现互操作和信息共享&#xff0c;取消多种协议转换环节和转换设备&#xff0c;使系统调试更加便捷&#xff0c;实现“一个世界、一种技术、…

【面经】重庆农商行金融科技面经

【面经】重庆农商行金融科技面经 在脉脉上看重庆农商行貌似钱多事少&#xff0c;好评比较多。 公司介绍 重庆农村商业银行股份有限公司&#xff08;以下简称“重庆农商行”&#xff09;前身为重庆市农村信用社&#xff0c;成立于1951年&#xff0c;至今已有70余年历史。2003年…

联发科mt6165芯片原理图mt6165芯片资料

mt6165是在40nm cmos中实现的td-scdma和2g双模rf收发器。闯客网rf收发器函数是完全集成的。这份文件描述了rf的性能目标。在整个产品中嵌入宏 关键特征 -成本低的双模射频解决方案&#xff08;gge和td-scdma&#xff09;。8(hspa))四频gge(gsm850/900/dcs/pcs)/三频tdd(b34/b39…

Pyqt5的QThead线程对象实现线程开始、暂停、恢复、结束

前言 最近学习Pyqt5&#xff0c;研究QThead线程对象&#xff0c;因网上这方面资料较少&#xff0c;钻研过后&#xff0c;将感悟理解记录如下。 声明&#xff1a;感悟理解建立在分析其他大佬的博客的基础上&#xff0c;喝水不忘挖井人&#xff0c;大佬们的博客如下&#xff1a…

联想e480一键恢复小孔_thinkpade480win10如何一键还原

thinkpade480win10如何一键还原 卡饭网 本站整理 2019-08-14 方法一&#xff1a; 在控制面板中打开“恢复”(大图标查看方式下)。 点击【开始系统还原】 选择还原点 (1)系统还原会推荐一个最近的没有故障的还原点&#xff0c;建议选择。点击【下一步】&#xff0c;再点击【完成…

E480安装ubuntu18.04出现进入wifi没有无线适配器的处理方案

今天突发奇想&#xff0c;想在自己的电脑上装上ubuntu&#xff0c;实现win10ubuntu双系统 在顺利的装好系统之后&#xff0c;发现wifi界面找不到适配器&#xff0c;也即是无线网卡没有装好 E480是rtl8821ce无线网卡&#xff0c;官方不提供linux驱动&#xff0c;github上大佬写…