• [交流分享] Nginx配置http、https、ws、wss及其作用
    http代理:最常用的代理配置,可以解决负载均衡,容灾等问题;https代理:安全的http代理,对于安全性要求比较高,需要配置证书;ws代理:WS表示websocket服务,指的是长连接,Nginx配置WebSocket也比较简单只需要加上配置项: proxy_set_header Upgrade $http_upgrade;             proxy_set_header Connection $connection_upgrade;    wss代理:WSS表示WebSocket + Https,就是安全的WebSocket,配置和ws服务一样,只需要在https代理加上配置项: proxy_set_header Upgrade $http_upgrade;             proxy_set_header Connection $connection_upgrade;    配置文件如下,其中localhost值不能重复,配置项参考https://www.runoob.com/w3cnote/nginx-setup-intro.html:       server {         listen 8088;                 server_name localhost;                //配置ssl证书,证书生产命令 openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout test.key -out test.crt        ssl_certificate "test.crt";        ssl_certificate_key "test.key";        ssl_ecdh_curve X25519:X448;        ssl_session_cache    shared:SSL:1m;        ssl_session_timeout  5m;        ssl_protocols TLSv1.3 TLSv1.2;        ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384";        // 开启ssl认证,若不开启,https、wss认证不生效        ssl_prefer_server_ciphers on;                        // 配置https代理,需要开启ssl认证开关        location /{             proxy_pass https://xxx.xxx.xxx.xxx:****;             }                 // 配置http代理        location / {             proxy_pass http://xxx.xxx.xxx.xxx:****;         }                // 配置wss代理,需要开启ssl认证开关        location /{             proxy_pass https://xxx.xxx.xxx.xxx:****;             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;             proxy_set_header Upgrade $http_upgrade;             proxy_set_header Connection $connection_upgrade;                     }                // 配置ws代理        location / {             proxy_pass http://xxx.xxx.xxx.xxx:****;             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;             proxy_set_header Upgrade $http_upgrade;             proxy_set_header Connection $connection_upgrade;             }    }}
  • [技术干货] 智慧园区业务资产说明之——智慧园区地图组件(下)
    地图属性选中地图组件,单击配置属性、数据、事件。图1 地图属性页面地图属性参数说明如表2所示。表2 地图组件属性设置页面参数说明区域参数名说明属性组件标题地图组件名称该Widget名称。边框边框样式,是整体显示边框或者四角显示边框。背景/样式背景样式。背景/图片链接背景图片URL。背景/颜色背景颜色。数据Connector - ScatterDataConnector当需要在地图上显示散点图时,则配置该桥接器。单击该桥接器后的,在“桥接器”窗口配置如下参数,为地图提供散点图的数据源。桥接器名称:调用的桥接器名称,从下拉框选择系统提供的预置桥接器。系统预置的桥接器可在APP开发界面左侧列表单击,选择“高级页面>桥接器”,在“全局”页签进行查找并下载查看桥接器包中内容。调用周期(秒):每隔多少秒调用一次后台接口,默认配置为“0”,表示只调用一次后台接口。URL:调用后台接口的URL,该接口实现为地图提供散点图的数据源,您可通过服务编排进行实现。用于在地图初始化时,接收Custom API传来的数据,将其转化为ScatterDataViewModel定义的数据模型,在地图上绘制echarts散点图。ScatterDataViewModel定义的数据模型,与地图组件Action中“画散点图refreshScatter Action”所定义的模型一致。详细参数请参见ScatterDataConnector。Connector - AlarmDataConnector当需要在地图上显示告警信息时,则单击该桥接器后的进行配置,为地图提供告警的WebSocket数据源。用于在使用地图过程中,侦听web socket上报的消息数据,将其转化为AlarmDataViewModel定义的数据模型,在地图上添加或清除覆盖物。例如火警告警被触发后,web socket侦听到上报消息,会自动触发地图组件对AlarmDataConnector的调用,添加告警窗口可以用添加信息窗体来实现。AlarmDataViewModel定义的数据模型,与地图组件Action中“在地图上添加或清除覆盖物addMarkerElements Action”所定义的模型一致,详细参数请参见AlarmDataConnector。Connector - SC_OverlaysDataConnector用于在地图初始化时,接收Custom API传来的数据,将其转化为OverlaysDataViewModel定义的数据模型,为地图添加或清除覆盖物。OverlaysDataViewModel定义的数据模型,与地图组件Action中“在地图上添加或清除覆盖物addMarkerElements Action”所定义的模型一致,详细参数请参见SC_OverlaysDataConnector。Connector - MapConfigDataConnector当需要从外部控制地图的类型、中心点、缩放级别等配置时,则单击该桥接器后的进行配置,为地图提供初始化配置数据的数据源。用于在地图初始化时,接收Custom API传来的数据,将其转化为MapConfigDataViewModel定义的数据模型,用于改变地图初始化时的配置,详细参数请参见SC_MapConfigDataConnector。API POST Connector查询地图配置。当使用伟岸纵横/超图/中地数码地图时,必须配置该参数。当使用百度/谷歌/高德地图时,不需要配置该参数。事件markerElementSelection单击地图上的某个marker,地图外发一个带marker详细信息的事件。marker详细信息的Object,内容取决于添加marker时传入的详细信息,如:"element":{ "height": 24, "heightSelected": 32, "id": "elevator002", "image": "/images/elevator001.png", "imageSelected": "/images/elevator005.png", "label": { "offset": [5, -25], "text": "电梯002" }, "position": [114.05822932720184, 22.656630277633667], "tag": {}, "title": "电梯002", "width": 24, "widthSelected": 32, "mapSideId": "111" }scatterPointSelection单击散点图中的某个点,地图外发一个被单击的点详细信息的事件。输出参数如下:eventType:必选,String类型,表示当前触发的事件类型:click。callback:必选,String类型,表示事件触发后的回调函数名称,或任意唯一标示符。echartsData:必选,Object类型,被单击的点详细信息,取决于画点时传入的信息。zoomTheMap缩放地图,地图外发一个带缩放信息的事件。输出参数如下:zoom:必选,Number类型,表示地图显示的缩放级别(1~22)。center:必选,Array类型,表示地图中心点经纬度坐标值,如[经度,纬度],使用GPS(WGS-84)坐标系。clickTheMap单击地图上某个位置,地图外发一个带位置信息的事件。输出参数如下:lng:必选,Number类型,表示单击位置的地图经度。lat:必选,Number类型,表示单击位置的地图纬度。buildingId:可选,String类型,表示单击位置的室内楼栋ID。floorId:可选,String类型,表示单击位置的室内楼层ID。frameOnEnd打开地图框选控件,进行框选,框选结束后,地图外发框选到的marker和热力点信息列表。输出参数:markers:可选,Array类型,表示markers列表,包含addMarker/addFlashMarekr/addClusterMarker接口添加marker时传入的marker信息。heatPoints:可选,Array类型,表示热力点列表,包含showHeatMap接口画热力图时传入的热力点信息。地图Action选中地图组件,单击配置属性,选择“事件”可创建新组件事件,或者编辑已有的事件操作。图2 编辑事件操作地图事件操作如表3所示。表3 地图组件Action操作Action名称说明画散点图Refresh Scatter在地图上画echarts散点图。在地图上添加或清除覆盖物Add Marker Elements在地图上添加某种类型的覆盖物(图标、闪烁图标、信息窗体、折线实际路径、规划后的路径、热力图、圆、折线),或清除所有覆盖物清除某类或某个覆盖物Clear Overlays By Condition根据传入的id或type,清除地图上覆盖物。定位地图上某个覆盖物Locate Element找到地图上某个指定的图标,并触发图标点击事件。修改地图配置数据Modify Map Configuration地图使用过程中,对地图的某些属性进行修改。
  • [热门活动] 618年中最强优惠大促,华为云CDN助力全球企业提供低时延用户体验
    海外融媒体矩阵平台凤凰秀依托华为云CDN提供高质量、低延迟用户体验通过在华为云CDN的可扩展、安全和覆盖全球的边缘网络上运行其平台和应用程序,凤凰秀旨在抓住数字化转型的增长机遇,加强其数字媒体转型的领导地位,并为5G技术、VR、视频AI的发展培养潜在能力。凤凰秀(Feng Shows)是凤凰卫视的海外融媒体矩阵平台,践行“立足香港,面向港澳台及全球华人”的使命,发挥凤凰传媒优势,结合互联网传播形态,提供凤凰卫视中文台、资讯台、香港台24小时直播,凤凰卫视精品节目点播,全球资讯速报等内容。秉承凤凰卫视一以贯之“高度、精品、深度”的内容理念,通过客户端与海外社交媒体传递中国声音。凤凰秀建立了以客户端为核心、社交媒体为辐射的传播矩阵,截止目前,客户端累计下载量已突破600万。人们的媒体消费行为已然发生巨大变化,用户成为中心角色,保障用户享有流畅、高清、低时延的视听体验至关重要。华为云CDN为凤凰秀提供点播和直播加速,通过将热点视频提前分发至更优的服务节点,用户无需回源获取,减轻源站压力,同时进一步提高访问速度。作为专业的内容分发网络,华为云CDN保障数字内容从地理分布网络中的附近位置向最终用户交付。依托华为云CDN覆盖130多个国家和地区2800+节点,全网带宽超过150T,凤凰秀利用华为云CDN的精准调度和负载均衡,让视频内容传输更快,同时保障低卡顿平均值和错误率均值。通过更有效地使用资源和降低带宽费用,华为云CDN为客户节省IT成本。 聪明的企业通常会做其能做的事,让其高薪聘请的技术专家去开发为业务增加价值的产品,而不是花时间管理复杂的IT基础设施。所以有必要去评估一个CDN的易用性。华为云CDN配置简单,在几分钟之内能够快速运行,而无需繁杂的手动配置,对于初次使用者也是很友好的。 凤凰秀和华为云CDN的合作旨在加速向云平台的转变,涵盖多个工作领域,包括技术解决方案和生态。客户可以利用华为云提供的各种云服务,在无需对CDN系统进行变更的同时,扩展云功能。即使面对流量高峰,华为云CDN联动其他云产品也能为客户带来持续的高质量体验。华为云CDN助力全球企业云提速!今年618华为云CDN优惠大放送,年中最强优惠回馈新老客户,折扣优惠享不停!CDN流量包券后低至3.4折优惠,闲时流量包券后低至0.045元/GB,同时新客还可领取价值680元的专享折后满减代金券大礼包。此外,新品视频直播闲时流量包券后低至0.075元/GB,让客户享受更低的价格,体验更优质的视频服务。华为云CDN618分会场精选多个爆款规格流量包倾情奉上,全方位多重力度为企业客户降低成本压力!快来和我们一同开启智能加速吧!登录华为云官网,前往华为云CDN618分会场,更多优惠等你来发现! 更多福利请扫码前往CDN专场
  • [技术干货] 基于STM32+华为云IOT设计的老人防摔倒报警系统
    ## 1. 前言 我国独生子女,以及人口老龄化等问题,正逐渐成为一个重大的社会问题,老年人机体能力的下降,摔倒引起的安全和危害愈来愈突出,国家和社会越来越关注老年人的健康和安全,开发一个能够实时检测出老年人是否摔倒,并且能及时告知监护人的摔倒检测以及报警系统具有重要的现实意义。本系统包括检测摔倒模块、GPS定位模块和通信模块三部分,通过检测老年人日常状态,可以得知老年人的状态,如果监测到老年人摔倒了,此时会通过网络把检测结果上传到物联网云平台,获得老年人摔倒地点的GPS定位,并且通过GPRS通讯发短信给预设的监护人。 ## 2. 设计需求 (1)采用STM32单片机作为主控芯片,配合其他模块完成功能设计 (2)通信模块采用SIM800C,支持上传采集的GPS经纬度数据到云端服务器,云端采用华为云物联网平台。 (3)老人摔倒检测采用MPU6050陀螺仪检测,当检测到老人摔倒之后,会通过SIM800C发送短信到紧急联系人,设备上的蜂鸣器会发出警报声,周围行人听到也可以进行帮助;并且会将GPS数据上传到云端,通过地图显示老人的位置,家人通过短信知道老人摔倒后,通过云端地图显示的位置,可以快速赶到老人身边,或者报警求助,报告位置。 (4)老人摔倒后,如果自己能行动,没有大问题,可以自己按下设备上的按键取消蜂鸣器报警,并且通过SIM800C向家人发送一条短信,报平安。 ## 3. 设计的实物效果 为了快速验证方案的可行性,这里采用现成的模块采用杜邦线连接完成整个预想的功能设计。 下面就是硬件连接好之后的效果图,选用的硬件型号在第4章节已经全部贴出来了;为了方便户外测试,这里的供电电源采用了充电宝,也可以采用电池盒供电。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654611828763541312.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654611854264493879.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654611864621658164.png) 通过服务器返回坐标之后显示的轨迹、定位等信息,实时显示定位。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654666552687858340.png) 可以设置电子围栏,坐标超出之后进行提示。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654666630193312700.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654666733713299054.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654666764627708730.png) ## 4. 硬件选型 主控芯片采用STM32RCT6,通信模块采用SIM800C,GPS采集使用ATGM336北斗BDS+GPS双模模块,老人摔倒检测模块采用MPU6050陀螺仪。 这些都是采用现成的成品模块,都是在淘宝上买的,下面都贴出了模块的型号,模块的实物截图,如果自己想做一个,可以在淘宝上找到一样的模块型号购买。 ### 4.1 SIM800C SIM800C模块是一款高性能高性价比工业级的GSM/GPRS模块。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654612195228178520.png) **1、DC 5V-18V电源输入,推荐使用DC 9V** 2、电源开始使能引脚默认使能 **3、电源地** **4、GSM模块的TXD引脚接其它模块的RXD** **5、GSM模块的RXD引脚接其它模块的TXD** 6、数据终端准备 7、内核音频输出引脚 8、内核音频输出引脚 9、锂电池输入引脚,DC 3.5 - 4.5V 10、电源地 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654612248104999807.png) **11、启动引脚和GND短路可实现开机自启动** **12、电源地** 13、RTC外置电池引脚 14、内核振铃提示引脚 15、内合音频输入引脚 16、内核音频输入引脚 **加粗的引脚一般都用到。** 建议使用V_IN单独供电DC5-18V输入(推荐使用9V),或者VBAT供电锂电池两种供电方式这两种供电方式最稳定。 **总结:** 模块本身支持自适应波特率,可以自动根据发送过去的指令计算对应的波特率,一般使用115200即可。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654612860107297046.png) **模块调试总结:** (1)供电电压5V也可以,采用电脑USB供电(直接插电脑USB口)。正常供电之后,模块上有电源指示灯。 (2)SIM800C的TX脚接单片机的RX脚 (3)SIM800C的RX脚接单片机的TX脚 (4)SIM800C的第11个引脚(PWK)和12个引脚(GND)短接接在一起,才可以开机。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654612884831865928.png) 电源正常后,右上角有一个黄色的电源灯。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654613257499270037.png) 通过串口发送AT指令过去测试模块效果。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654613276924125043.png) ### 4.2 STM32F103C8T6开发板 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654613334203859254.png) ### 3.3 GPS模块 GPS模块正常定位后,模块上的LED灯会按照1秒钟闪烁一次。 返回的字段里$GNRMC表示当前定位的GPS经纬度,解析代码只需要解析$GNRMC字段。 第一次启动GPS模块,定位差不多要几分钟时间,定位成功后,第二次启动定位就很快,最好是在室外,室内信号差,定位时间更久。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654613385524230260.png) ### 4.4 MPU6050陀螺仪 陀螺仪选择的是正点原子的模块,比较稳定,质量较好。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654613398241542028.png) ### 4.5 蜂鸣器 蜂鸣器选择的高电平触发。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654613410458336529.png) ## 5. 创建云端物联网服务器 为了方便查看老人摔倒之后的位置,需要通过SIM800C将设备采集的GPS数据上传到云平台服务器保存,就算老人没有跌倒,也可以实时关注老人的位置,在地图上绘制出轨迹线路,方便家人随时联系,了解老人的情况。 这里物联网的平台选择是华为云物联网平台,目前是免费使用的,在云端创建产品等信息后,设备再通过MQTT协议连接云平台上传GPS数据。目前华为云的拖拽试网页开发页面已经下架,目前要开发对应的上位机,可以采用最近主推的低代码开发平台或者自己通过云平台的应用侧开发接口自己开发上位机,我这里是自己开发的上位机,通过QT编写的上位机APP,支持windows、Android、Linux等多个平台运行,跨平台使用还是比较方便。 下面接着就介绍如何登陆官网创建产品、设备、完成云端的产品部署。 ### 5.1 创建产品 官网地址: https://www.huaweicloud.com/product/iothub.html 打开官网后没有华为云账号需要先注册账号,这些步骤就不多说了,接下来就直接介绍如何创建产品、设备、配置属性、完成数据上传交互的流程。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654615063227820021.png) 点击免费使用进去页面。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654615376001477304.png) 点击左边产品选项,点击右上角创建产品按钮,弹出参数填充对话框。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654615410546954033.png) 根据自己的设备情况填入信息之后保存。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654615686437391185.png) 产品创建成功,点击查看详细信息。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654615726709192710.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654615752611801975.png) ### 5.2 创建模型文件 在现在的详情页面往下翻,可以看到模型创建的选项。 点击自定义模型选项,创建模型。 这里的模型就是设备上传的数据属性。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654615959215537746.png) 添加服务ID。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654616000663783657.png) 点击创建属性,这里选择JSON类型的数据,上传的GPS有经纬度两个数据,方便保存。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654616086397913200.png) 创建成功。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654616127502312806.png) ### 5.3 创建设备 产品是一个大框架的模型,下面可以创建很多具体的设备,目前我这里只有一个硬件设备,就创建一个设备就行了。设备可以手动创建,也支持自动创建,就像现在市面上的智能设备产品,拿到设备后,扫描设备上二维码再通手机APP就可以完成产品的创建,设备的添加。 目前我这里设备就只有一个,而且还要演示整个流程,就在网页上完成整个设备的创建。 链接地址: https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/device/all-device 点击左边的设备选项,再点击右上角的注册设备。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654616324530544885.png) 填充好信息之后,点击确定。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654616559778844835.png) 创建后保存设备的数据。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654616687257626924.png) ```cpp { "device_id": "GPS1", "secret": "12345678" } ``` 创建成功,目前设备处于未激活状态。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654616742347774247.png) ### 5.4 获取MQTT登录参数 目前产品、设备创建好之后就需要通过设备连接上来上传数据,要完成这个步骤,还需要知道一些前提的流程。 【A】华为云服务器IP地址、域名、端口号 【B】主题订阅的格式、主题发布的格式 【C】MQTT协议登录的三元组信息 充分了解了这3个信息之后就可以编写设备端代码了。下面就详细介绍这些信息怎么得到。 【1】华为云的服务器地址信息 在这里查看: https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/instance/detail?id=8fe87243-d97d-4c1e-bb34-186a60ca2d14&type=public ```cpp 华为云物联网平台的域名是: 161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com 华为云物联网平台的IP地址是:121.36.42.100 端口号是1883 ``` 【2】主题订阅的格式、主题发布的格式 主题订阅上报的格式在产品的详情页面可以看到。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654617665343588192.png) 主题发布官方的详细介绍在这里: https://support.huaweicloud.com/devg-iothub/iot_01_2127.html#ZH-CN_TOPIC_0240834853__zh-cn_topic_0251997880_li365284516112 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654617489186647411.png) 主题上报的属性格式说明文档地址: https://support.huaweicloud.com/api-iothub/iot_06_v5_3010.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/7/1654617549057348145.png) 根据当前设备的信息总结,得到的信息如下: ```cpp //订阅主题: 平台下发消息给设备 $oc/devices/GPS1/sys/messages/down //设备上报数据 $oc/devices/GPS1/sys/properties/report //上报的属性消息 (一次可以上报多个属性,在json里增加就行了) {"services": [{"service_id": "GPS","properties":{"GPS":{"lon":106.53,"lat":29.46}}}]} ``` 【3】MQTT协议登录的三元组信息 华为云提供了MQTT协议参数的生成工具,非常方便,根据提示填入参数一键生成三元组。 MQTT设备登陆密匙生成地址: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/ ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654618243136289009.png) 得到的三元组如下: ```cpp ClientId GPS1_0_0_2022060716 Username GPS1 Password 27a2d2dd716fac29a0041beec1d7cf5f5b529fac65cc815c7eed9adb04d7364b ``` ### 5.5 采用MQTT客户工具登录测试 为了方便验证服务器的配置以及主题、属性这些是否OK,可以先使用MQTT客户端模拟真实设备登录测试。下面这个MQTT工具是我自己开发的,为了方便测试对接物联网平台,使用QT写了这么一个工具软件。 工具软件的名称: `MQTT客户端_v2.5(协议3.1.1).exe` 我已经上传到CSDN的资源库里了,可以直接去CSDN里搜索就能找到软件的下载地址,下面的文章的附件里我也会上传一份。 在软件左边根据提示填入对应的参数,依次点击登录,订阅主题,发布主题即可。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654618676956345509.png) 这时打开网页可以看到设备已经在线了。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654618920827527802.png) 在设备影子页面上可以看到上传的数据内容。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654618953457508133.png) 启动消息跟踪,可以了解通信的过程。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654618992861494998.png) ## 6. STM32硬件设备端程序设计 在第5章完成了物联网云平台的构建,接下来的第6章节,就编写STM32设备端代码。 STM32设备端开发环境采用keil5进行开发,编程风格采用寄存器风格形式,不管使用库函数,还是寄存器,还是HAL库,本身都一样,没有太大区别,我编写STM32代码习惯了寄存器开发,主要是寄存器的代码比较简洁,工程文件精简。 关于keil5软件的下载流程、安装流程、基本使用办法这里就不在详细介绍,相应看这篇文章的`道友`应该这些会这些基操,这里主要是以项目为导向,介绍比较核心的知识点。 ### 6.1 硬件接线 下面是介绍使用的硬件模块与STM32开发板之间的硬件连线。 ```cpp SIM800C接线说明: GND----GND PA2----SIM800C_RXD PA3----SIM800C_TXD CH340模块接线说明: GND----GND RX-----PA9 GPS接线说明: (波特率需要根据GPS模块实际情况进行修改) GND----GND VCC---3.3V PB11----GPS_TX 蜂鸣器模块: 高电平响 BEEP----->PB8 板载LED灯: LED1--PC13 低电平亮 板载按键: KEY1--PA0 按下为高电平 外接按键: KEY1 -PB3 按下是低电平 KEY2 -PB2 按下是低电平 外接LED灯模块: LED1-PB4 低电平亮 LED2-PB5 低电平亮 硬件接线: 1 VCC 3.3V/5V 电源输入 ---->接3.3V 2 GND 地线 --->接GND 3 IIC_SDA IIC 通信数据线 -->PB6 4 IIC_SCL IIC 通信时钟线 -->PB7 5 MPU_INT 中断输出引脚 ---->未接 6 MPU_AD0 IIC 从机地址设置引脚-->PA15 AD0引脚说明:ID=0X68(悬空/接 GND) ID=0X69(接 VCC) 注意:陀螺仪初始化的时候,必须正常摆放才可以初始化成功 ``` 这是通过杜邦线接好模块后的效果图: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654619463062922987.png) ### 6.2 keil工程截图 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654619601374318257.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654619625941311862.png) ### 6.3 原理图 下面是绘制的原理图。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654619666172245021.png) ### 6.4 MQTT协议实现代码以及MQTT参数 SIM800C本身没有内置MQTT协议指令,只有TCP通信的指令,需要自己封装MQTT协议,然后通过TCP通信的相关指令完成云端服务器连接,实现数据交互。 下面这份代码是MQTT协议的参数定义,程序里为了方便修改,采用宏定义方式赋值这些参数。 ```cpp //华为物联网服务器的设备信息 #define MQTT_ClientID "GPS1_0_0_2022060716" #define MQTT_UserName "GPS1" #define MQTT_PassWord "27a2d2dd716fac29a0041beec1d7cf5f5b529fac65cc815c7eed9adb04d7364b" //订阅与发布的主题 #define SET_TOPIC "$oc/devices/GPS1/sys/messages/down" //订阅 #define POST_TOPIC "$oc/devices/GPS1/sys/properties/report" //发布 ``` 这是封装的几个MQTT协议核心函数: ```cpp /* 函数功能: 登录服务器 函数返回值: 0表示成功 1表示失败 */ u8 MQTT_Connect(char *ClientID,char *Username,char *Password) { u8 i,j; int ClientIDLen = strlen(ClientID); int UsernameLen = strlen(Username); int PasswordLen = strlen(Password); int DataLen; mqtt_txlen=0; //可变报头+Payload 每个字段包含两个字节的长度标识 DataLen = 10 + (ClientIDLen+2) + (UsernameLen+2) + (PasswordLen+2); //固定报头 //控制报文类型 mqtt_txbuf[mqtt_txlen++] = 0x10; //MQTT Message Type CONNECT //剩余长度(不包括固定头部) do { u8 encodedByte = DataLen % 128; DataLen = DataLen / 128; // if there are more data to encode, set the top bit of this byte if ( DataLen > 0 ) encodedByte = encodedByte | 128; mqtt_txbuf[mqtt_txlen++] = encodedByte; }while ( DataLen > 0 ); //可变报头 //协议名 mqtt_txbuf[mqtt_txlen++] = 0; // Protocol Name Length MSB mqtt_txbuf[mqtt_txlen++] = 4; // Protocol Name Length LSB mqtt_txbuf[mqtt_txlen++] = 'M'; // ASCII Code for M mqtt_txbuf[mqtt_txlen++] = 'Q'; // ASCII Code for Q mqtt_txbuf[mqtt_txlen++] = 'T'; // ASCII Code for T mqtt_txbuf[mqtt_txlen++] = 'T'; // ASCII Code for T //协议级别 mqtt_txbuf[mqtt_txlen++] = 4; // MQTT Protocol version = 4 对于 3.1.1 版协议,协议级别字段的值是 4(0x04) //连接标志 mqtt_txbuf[mqtt_txlen++] = 0xc2; // conn flags mqtt_txbuf[mqtt_txlen++] = 0; // Keep-alive Time Length MSB mqtt_txbuf[mqtt_txlen++] = 100; // Keep-alive Time Length LSB 100S心跳包 保活时间 mqtt_txbuf[mqtt_txlen++] = BYTE1(ClientIDLen);// Client ID length MSB mqtt_txbuf[mqtt_txlen++] = BYTE0(ClientIDLen);// Client ID length LSB memcpy(&mqtt_txbuf[mqtt_txlen],ClientID,ClientIDLen); mqtt_txlen += ClientIDLen; if(UsernameLen > 0) { mqtt_txbuf[mqtt_txlen++] = BYTE1(UsernameLen); //username length MSB mqtt_txbuf[mqtt_txlen++] = BYTE0(UsernameLen); //username length LSB memcpy(&mqtt_txbuf[mqtt_txlen],Username,UsernameLen); mqtt_txlen += UsernameLen; } if(PasswordLen > 0) { mqtt_txbuf[mqtt_txlen++] = BYTE1(PasswordLen); //password length MSB mqtt_txbuf[mqtt_txlen++] = BYTE0(PasswordLen); //password length LSB memcpy(&mqtt_txbuf[mqtt_txlen],Password,PasswordLen); mqtt_txlen += PasswordLen; } memset(mqtt_rxbuf,0,mqtt_rxlen); MQTT_SendBuf(mqtt_txbuf,mqtt_txlen); return 1; } ``` ### 6.4 MPU6050.c代码 这是MPU6050陀螺仪的核心驱动代码,方便检测老人的姿态,判断是否摔倒。 因为文章发表的字数限制问题,无法贴出代码,代码后面整理了通过附件上传。 ### 6.5 GPS.c代码 接收GPS数据之后进行解析,得到经纬度,方便上传到物联网云平台。 ```cpp #include "gps.h" /* 函数功能:从buf里面得到第cnt个逗号所在的位置 返 回 值:0~254,代表逗号所在位置的偏移. 255,代表不存在第cnt个逗号 */ u8 GPS_GetCommaOffset(char *buf,u8 cnt) { char *p=buf; while(cnt) { if(*buf=='*'||*buf<' '||*buf>'z')return 255;//遇到'*'或者非法字符,则不存在第cx个逗号 if(*buf==',')cnt--; buf++; } return buf-p; //计算偏移量 } /* 函数功能: 获取GPS经纬度数据值 函数参数: double *Longitude :经度 double *latitude :纬度 返回值: 0表示定位成功,1表示定位失败 说明: 解析$GPRMC命令,得到经纬度 $GNRMC,023705.000,A,2842.4164,N,11549.5713,E,1.73,91.65,150319,,,A*41 转换公式示例: 经度: dddmm.mmmm 东经 11408.4790 114+(08.4790/60)=114.141317 纬度: ddmm.mmmm 北纬 2236.9453 22+(36.9453/60)= 22.615755 中科微返回的数据 $GNRMC,144435.000,A,2942.1201,N,10636.6466,E,1.50,64.42,190422,,,A*40 */ u8 GPS_GPRMC_Decoding(u8 *gps_buffer,double *Longitude,double *latitude) { u8 Offset; u32 int_data; double s_Longitude,s_latitude; char *p; /*1. 确定下定位是否成功*/ p=strstr((char*)gps_buffer,"$GNRMC"); if(!p)return 1; Offset=GPS_GetCommaOffset(p,2); if(Offset==255)return 2; if(*(p+Offset)!='A')return 3; //定位不准确 /*2. 得到纬度*/ Offset=GPS_GetCommaOffset(p,3); if(Offset==255)return 4; sscanf(p+Offset,"%lf",&s_latitude); s_latitude=s_latitude/100; int_data=s_latitude;//得到纬度整数部分 s_latitude=s_latitude-int_data;//得到纬度小数部分 s_latitude=(s_latitude)*100; *latitude=int_data+(s_latitude/60.0); //得到转换后的值 /*3. 得到经度*/ Offset=GPS_GetCommaOffset(p,5); if(Offset==255)return 5; sscanf(p+Offset,"%lf",&s_Longitude); s_Longitude=s_Longitude/100; int_data=s_Longitude;//得到经度整数部分 s_Longitude=s_Longitude-int_data; //得到经度小数部分 s_Longitude=s_Longitude*100; *Longitude=int_data+(s_Longitude/60.0); return 0; } ``` ## 7. 上位机APP开发 为了方便查看地图位置,轨迹等信息,当前采用QT编写了一个配套的上位机,通过华为云IOT的应用侧开发接口,获取设备的影子数据,然后再调用百度地图进行显示目标位置。 接下来就介绍上位机软件的开发流程。 ### 7.1 安装Qt开发环境 Qt是个跨平台的C++开发框架,一份代码支持在不同系统平台编译运行。支持Android、IOS、Windows、Linux等平台。 目前我使用的开发环境是:QT 5.12.6 ,其他版本也可以的。 QT5.12.6的下载地址: https://download.qt.io/archive/qt/5.12/5.12.6/ 打开下载链接后选择下面的版本进行下载: ```cpp qt-opensource-windows-x86-5.12.6.exe 13-Nov-2019 07:28 3.7G Details ``` 软件安装时断网安装,否则会提示输入账户。安装的时候,第一个复选框里勾选一个mingw 32编译器即可,其他的不管默认就行,直接点击下一步继续安装。 如果只是在windows下开发,最简单的安装就只选择 MinGW编译器即可,其他的编译器不用勾选。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654652810682954333.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654652827743656689.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654652838716466203.png) ### 7.2 应用侧开发接口文档 帮助文档地址: https://support.huaweicloud.com/usermanual-iothub/iot_01_0045.html 当前我这个应用主要是读取设备上传的GPS数据即可,要得到数据有两种方式: 【1】读取设备影子数据,也就是获取设备上传到服务器之后的历史数据(非实时数据)就是设备最后一次传上来的数据,获取影子数据,不需要关心设备是否在线都可以获取。 我这里GPS获取是获取的影子设备数据,也就是得到设备最后一次上传的数据。 地址:https://support.huaweicloud.com/api-iothub/iot_06_v5_0079.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654655088628806784.png) 【2】(查询设备属性)读取实时数据,如果需要设备立即发布当前的数据上来,可以发送同步指令给设备,设备端需要编写解析指令的代码,收到指令后设备根据格式回应数据回来。这种同步实时数据需要设备保持在线才可以响应指令。 具体的使用场景可以根据自己需求设计。 通过查询属性的接口,可以主动请求获取设备详细属性。 **流程是:应用层调用这个API接口---->请求服务器----->请求客户端设备------>返回给服务器----->返回给应用层调用处。** 文档地址:https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654655022205167514.png) ### 7.3 创建IAM账户 这一步很重要,在开发上位机时,需要调用应用侧的一些接口,这些接口都需要带上token登录密匙。而token登录密匙的生成需要IAM账户才获取。 地址:https://console.huaweicloud.com/iam/?region=cn-north-4#/iam/users **(1)创建用户** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654654902648317962.png) **(2)填充参数** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654654927775110314.png) **(3)完成创建** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20226/8/1654654947851652279.png) ### 7.4 实现代码 下面贴出请求接口的核心代码。 ```cpp /* 功能: 获取token */ void Widget::GetToken() { //表示获取token function_select=3; QString requestUrl; QNetworkRequest request; //设置请求地址 QUrl url; //获取token请求地址 requestUrl = QString("https://iam.%1.myhuaweicloud.com/v3/auth/tokens") .arg(SERVER_ID); //自己创建的TCP服务器,测试用 //requestUrl="http://10.0.0.6:8080"; //设置数据提交格式 request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8")); //构造请求 url.setUrl(requestUrl); request.setUrl(url); QString text =QString("{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":" "{\"user\":{\"domain\": {" "\"name\":\"%1\"},\"name\": \"%2\",\"password\": \"%3\"}}}," "\"scope\":{\"project\":{\"name\":\"%4\"}}}}") .arg(MAIN_USER) .arg(IAM_USER) .arg(IAM_PASSWORD) .arg(SERVER_ID); //发送请求 manager->post(request, text.toUtf8()); } //获取影子设备数据 void Widget::on_pushButton_addr_clicked() { //表示影子设备数据获取 function_select=0; QString requestUrl; QNetworkRequest request; //设置请求地址 QUrl url; //获取token请求地址 requestUrl = QString("https://iotda.%1.myhuaweicloud.com/v5/iot/%2/devices/%3/shadow") .arg(SERVER_ID) .arg(PROJECT_ID) .arg(Device_id); //自己创建的TCP服务器,测试用 //requestUrl="http://10.0.0.6:8080"; //设置数据提交格式 request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json")); //设置token request.setRawHeader("X-Auth-Token",Token); //构造请求 url.setUrl(requestUrl); request.setUrl(url); //发送请求 manager->get(request); } ``` 主要贴出2个比较重要的函数,一个获取token,一个查询设备影子数据。 ## 8. 华为云IOT微认证(3折微认证活动月) 目前华为云IoT开启了3折微认证活动月,华为云微认证提供一站式在线学习、实验与考试,零基础也可学习前沿技术知识,快速上手实战开发,获得场景化的技能提升! 即日起,报名活动即可参与抽奖,认证即送礼品,成团更送价值好礼! 不仅带你考取权威证书,0基础入门物联网开发,还可带走华为手环、耳机等豪华礼品! 【活动时间】 2022年5月17日-2022年6月17日 活动报名: https://developer.huaweicloud.com/signup/789d09ab650a46838b6908107d3282e1
  • [热门活动] 华为云CDN通过全站加速引领网站性能全面优化
    618大促来了,华为云CDN超级优惠加速网站性能全面优化全球58.4%的人口使用社交媒体,人们平均每日使用时间为2小时27分钟(数据来源:Smart Insights,2022年1月),实时、交互和自适应的动态内容爆发式增长。动态内容是海量的,然而竞争也是激烈的。据估计,每延迟1秒就有6%的用户离开。尽可能少的加载和等待时间对于企业减少用户流失和增加收入来说至关重要,这其中的秘诀就是将这些内容进行加速。电商,金融,游戏也是同样的情况,因为延迟可能会被用户看作访问失败。全球日益流行的动态内容驱动了华为云CDN全站加速解决方案的采用,它适用于提供多样化内容组合(静态、动态和不可缓存)的网站和Web服务器使用几种常见的Web编程语言(如 php、ruby 或 java)动态生成的内容。与标准CDN服务(将静态内容缓存到更靠近最终用户的位置)不同,全站加速深度融合了动态加速技术和静态加速技术,拥有更广阔的应用场景,包括动静混合、API接口、文件上传和个人文件加速。全站加速技术架构示意图动静态分离是华为云CDN全站加速的主要功能之一。通过对内容自动识别,智能的对动静态分类进行分离,客户不用在源服务器上更改代码来标记和区分动静态内容。静态内容从边缘节点就近获取,动态内容通过动态加速技术智能选择最佳路由回源获取,从而避免路由堵塞,降低延迟,提升速度。全站加速的优势是依靠华为云CDN全球智能边缘网络,覆盖130多个国家/地区2800+加速节点资源,智能调度依托集群部署分布式缓存,精准调度更优服务节点,在尽可能靠近用户的地方交付。一般来说,一些数据和文件是无法缓存的,处理这些内容的关键是沿着最快的路径智能地在其网络上处理内容请求。基于华为云边缘智能网络,华为云CDN独创Overlay智能路由技术,通过AI预测发现网络链路时变规律,设计全局路由,进行智能探测,选择最优路径,对网络变化进行智能分析和预测,动态调整纠错码的冗余率,降低时延。此外,全站加速还能支持传输协议优化。华为云CDN Net Turbo依托于智能加速网络实现端-边-云协同,通过QUIC传输协议、BBR2.0+增强算法、MP-TCP聚合加速等多种协议及算法优化,减少带宽消耗,改善加载速度,提高站点性能。通过全站加速,客户很好地解决了页面动静态资源混合、应对流量峰值、规避网络拥塞和延迟,全面改善访问体验,进而提高转化率和用户忠诚度。  华为云CDN助力全球企业云提速!今年618华为云CDN优惠大放送,年中最强优惠回馈新老客户,折扣优惠享不停!CDN流量包券后低至3.4折优惠,闲时流量包券后低至0.045元/GB,同时新客还可领取价值680元的专享折后满减代金券大礼包。此外,新品视频直播闲时流量包券后低至0.075元/GB,让客户享受更低的价格,体验更优质的视频服务。华为云CDN618分会场精选多个爆款规格流量包倾情奉上,全方位多重力度优惠为企业客户降低成本压力!快来和我们一同开启智能加速吧!登录华为云官网,前往华为云CDN618分会场,更多优惠等你来发现!
  • [获奖公告] 【代码重构每日打卡获奖名单公布】每日课程打卡,赢取课程奖励!
    恭喜获奖的各位开发者请大家在5月31日前点击下方链接填写获奖信息我们会在截至日期结束之后尽快给您邮礼品如您逾期没有填写,视为主动放弃奖励,望周知。获奖信息填写链接:【14天代码重构实战营用户体验及奖品邮寄信息登记问卷】活动已结束,获奖名单如下所示,公示5天公示期结束后(5月23日)获奖者可在本帖填写奖品邮寄信息收集问卷。公示期:5月18日-5月22日抽奖说明:此次14天代码重构实战营活动打卡情况统计如下:完成14天打卡用户人数42人完成7天打卡用户人数60人完成3天打卡用户人数66人完成1天打卡用户人数105人为保证公平性,3/7/14天连续打卡用户不可重复中奖,故每轮抽奖将剔除上一轮已获奖者再进行抽奖。即如果完成14天打卡的用户在14天打卡抽奖轮次中未中奖,在7天或3天打卡抽奖中可能会中奖,同理7天打卡用户也是哦!抽奖资格名单详见公示帖:【打卡信息公布】14天代码重构课程打卡名单公示 奖品及中奖概率:(1)完成第1天打卡,每人可获得500码豆,码豆最多发放20万,数量有限先到先得。(2)连续完成3天打卡可获得抽奖机会,奖品为三合一数据线,奖品数量上限为30份,中奖概率(≤100%)为“30/完成连续打卡3天任务的总人数”。(3)连续完成7天打卡可获得抽奖机会,奖品为手持风扇,奖品数量上限为10份,中奖概率(≤100%)为“10/完成连续打卡7天任务的总人数”。(4)连续完成14天打卡可获得抽奖机会,奖品为华为智选 海雀AI全景摄像头,奖品数量上限为3份,中奖概率(≤100%)为“3/完成连续打卡14天任务的总人数”。本次活动幸运奖将采用巨公摇号平台(https://www.jugong.wang/random-portal/)进行抽取,相关奖项将由华为云社区工作人员进行评选,如您对评奖方式有异议,请勿参加本次活动。中奖名单如下:14天代码重构实战营每日打卡中奖用户名单序号论坛昵称微信昵称奖项奖品1yd_250130253你**像谁连续14天打卡中奖华为智选 海雀AI全景摄像头2yd_262803835L** Equinox;连续14天打卡中奖华为智选 海雀AI全景摄像头3iolink1002汪**_^*连续14天打卡中奖华为智选 海雀AI全景摄像头4xiaxy **益连续7天打卡中奖手持风扇5guoky1894159小**连续7天打卡中奖手持风扇6jkzx6181秋*连续7天打卡中奖手持风扇7nukinsan八*连续7天打卡中奖手持风扇8malik程*连续7天打卡中奖手持风扇9guokuiyongq**ngzong连续7天打卡中奖手持风扇10thunder95t**nder95连续7天打卡中奖手持风扇11蓝晶冰玉如**黎不快樂连续7天打卡中奖手持风扇12emptyBoxe**tyBox连续7天打卡中奖手持风扇13zyw13019809851蜜**贝连续7天打卡中奖手持风扇14over_wzl若**连续3天打卡中奖数据线15cloud昵称bbs噫**连续3天打卡中奖数据线16anjianjuguo张**连续3天打卡中奖数据线17夏暖夏*连续3天打卡中奖数据线18@Wu小**连续3天打卡中奖数据线19蓝瘦的蜕变 **的蜕变连续3天打卡中奖数据线20yd_249618787V**tor连续3天打卡中奖数据线21y-wolfandy **连续3天打卡中奖数据线22小糖饼最甜呀小**最甜呀连续3天打卡中奖数据线23yd_292192128s**201连续3天打卡中奖数据线24yd_245482223李**连续3天打卡中奖数据线25sunofprovence麦**斯基连续3天打卡中奖数据线26微笑倾城 **琼连续3天打卡中奖数据线27yiu-pengY** Peng连续3天打卡中奖数据线28Archivez**连续3天打卡中奖数据线29剑雨乞**扎罗之狼连续3天打卡中奖数据线30yd_242852651小*连续3天打卡中奖数据线31yd_219118993A**ition连续3天打卡中奖数据线32jamesricadoj**esricado连续3天打卡中奖数据线33yd_239085618勇**连续3天打卡中奖数据线34yd_296252717M**LIONS连续3天打卡中奖数据线35John2021。**连续3天打卡中奖数据线36liuyan151415787S**shine连续3天打卡中奖数据线37tangd158415252z**ngy连续3天打卡中奖数据线38walkwikiw**k连续3天打卡中奖数据线39ws15041591187爽*连续3天打卡中奖数据线40湬黍湬*连续3天打卡中奖数据线41小小2018@**连续3天打卡中奖数据线42real joj*连续3天打卡中奖数据线43小强鼓掌小**掌连续3天打卡中奖数据线44abcabc敏*连续1天打卡中奖500码豆45Ania小*连续1天打卡中奖500码豆46cftangc**ang连续1天打卡中奖500码豆47HW_fight一**是有24小时的啊连续1天打卡中奖500码豆48i进击的攻城狮肥**连续1天打卡中奖500码豆49UMRD**Kenny_66连续1天打卡中奖500码豆50yc-chen风*连续1天打卡中奖500码豆51yd_223645057 **ranger连续1天打卡中奖500码豆52yd_225846754学*连续1天打卡中奖500码豆53yd_48903315没**出何来收获连续1天打卡中奖500码豆54zekelovez**e连续1天打卡中奖500码豆55氟西汀损**连续1天打卡中奖500码豆56咖啡18源*连续1天打卡中奖500码豆57蜡笔不辣C**tS连续1天打卡中奖500码豆58禄仁恝禄**连续1天打卡中奖500码豆59孙小北孙**连续1天打卡中奖500码豆60这个地方是昵称l**连续1天打卡中奖500码豆61郭kuiyong郭**连续1天打卡中奖500码豆62毛毛猫w**连续1天打卡中奖500码豆63yd_268237893桀**连续1天打卡中奖500码豆64zhengguixiang郑**连续1天打卡中奖500码豆65dyxzhang等**连续1天打卡中奖500码豆66晴空1晴**连续1天打卡中奖500码豆67张辉张**连续1天打卡中奖500码豆68@AA**连续1天打卡中奖500码豆69305佳3**佳连续1天打卡中奖500码豆70Ara~追着风跑**连续1天打卡中奖500码豆71ballew**r连续1天打卡中奖500码豆72CocoLiu2020C**oLiu2020连续1天打卡中奖500码豆73Flyfoodf**food连续1天打卡中奖500码豆74lzhusS**0000连续1天打卡中奖500码豆75testName茶**连续1天打卡中奖500码豆76wq765416999@**连续1天打卡中奖500码豆77x19x**连续1天打卡中奖500码豆78yd_223290172李**连续1天打卡中奖500码豆79yd_228128715静**连续1天打卡中奖500码豆80yd_234565682热**朝阳群众连续1天打卡中奖500码豆81yd_242476272晓**月连续1天打卡中奖500码豆82yd_244993104流**记忆连续1天打卡中奖500码豆83yd_245236253c**n连续1天打卡中奖500码豆84yd_245439936浮**连续1天打卡中奖500码豆85yd_247861458高**C连续1天打卡中奖500码豆86yd_2493474210**连续1天打卡中奖500码豆87yd_259794023小**连续1天打卡中奖500码豆88yd_262076836q**连续1天打卡中奖500码豆89yd_269703752星**背影连续1天打卡中奖500码豆90yd_274792310W**JIANG连续1天打卡中奖500码豆91yd_288144557小**连续1天打卡中奖500码豆92yd_292318528可**连续1天打卡中奖500码豆93yd_296177002落**连续1天打卡中奖500码豆94yuebaoy**bao连续1天打卡中奖500码豆95yuhuashi晴**iddot;莫冰落连续1天打卡中奖500码豆96yzq13516078375郑**连续1天打卡中奖500码豆97禅大师j**sylcljhsdty连续1天打卡中奖500码豆98嘲风S**ler连续1天打卡中奖500码豆99从大数据到人工智能真**连续1天打卡中奖500码豆100胡琦胡**连续1天打卡中奖500码豆101江佐月袁**连续1天打卡中奖500码豆102冷月欧皇l**edwar连续1天打卡中奖500码豆103舍会~你文哥*连续1天打卡中奖500码豆104腾腾**连续1天打卡中奖500码豆105新手上路001自**在轻轻松松的自由呼吸连续1天打卡中奖500码豆恭喜以上开发者,相关获奖名单信息和抽奖过程也可下载附件查看。公示5天,公示期结束后(5月22日)获奖者可在本帖填写奖品邮寄信息收集问卷。如有异议请联系华为云小助手01沟通。活动规则详见:https://bbs.huaweicloud.com/forum/thread-184761-1-1.html
  • [问题求助] Http 和 Https 区别
    Http 和 Https 区别
  • [行业资讯] 物联网卡和普通SIM卡各自有什么不一样的地方?
    物联网卡和普通SIM卡都是运营商发行的,其外表就好比是孪生兄弟一样,许多用户都知道,物联网卡和SIM卡的最大区别就是物理联卡不能打电话和发短信,其实在应用领域中也是相差很远的,普通SIM卡智能用于手机上或者这能手表上,但是物联网卡却可以应用在很多行业和领域中,比如:智能家居,车联网,智能农业,智能抄表,智能安防,智能医疗,共享经济等等。物联网发展迅猛,物联网卡在现在的市场也是相当火爆的,竞争力也是相当的大,也许是发展太迅速,很多人都还没有来得及去熟悉它,导致很多人对物联网卡的理解产生很多误区,目前最大的误区就是物联网卡和普通的流量卡混淆在一起。1、发卡公司和面向的群体:物联网卡是由三大运营商针对企业开发生产的,只面向企业合作,虽然最终有产品用在个人上,但也是统一的管理的;普通流量卡是有各大公司为了满足个人流量需求市场而开发的,面向的是个人使用,但很多公司提供的流量卡都是流量定向的,只适用在公司的产品上,会有限制,如腾讯王卡,定向流量就是用在腾讯的产品上,工行E卡流量用在工行指定的APP上,定向流量以外的就另外收费。2、功能:物联网卡主要针对企业开发生产,主要用来研发开发设备上;而普通流量卡是用于个人手机卡上,使用上网功能。3、卡资费和套餐:物联网卡主要面向企业合作,卡资费和套装相对比较多,可以适合各类企业设备使用,而普通流量卡只是针对一些个人需求和公司定向的产品不一样的套餐,套餐相对比较少。4、使用时间:物联网卡的使用周期是终身受用的;而普通流量卡会随着业务的变更而变更。5、号码:物联网卡是独立的网元,13位数字号码,是运营商的开发的一种比普通卡更高级的卡片;普通卡片则是正常的手机卡11位号码。7、购买方式:普通的手机卡可以直接从三大运营商的营业厅可以购买;物联网卡运营商不直接销售,而是有代理商负责销售推广。8、管理方式:普通手机卡可以充值现在很方便了,通过支付宝,微信或者营业厅都可以缴费,叠加流量包,通过客服可以咨询手机资费使用情况;物联网卡则是通过代理商提供的管理平台进行充值,叠加,查看流量使用情况,(1)个人购买的物联网卡后期管理会很麻烦。企业批量采购物联网卡,能够通过供应商提供的管理平台进行查询或者是充值。个人购买的物联网卡往往面临无处查询和充值的尴尬境地。(2)物联网卡一般都是企业通过营业厅进行批量办理或者是通过供应商批量采购,个人往往通过一些灰色渠道获得,比如说网络,网络上真假难辨这就很容易产生付了钱收不到卡的问题。(3)物联网卡的销售层层代理,代理商鱼龙混杂,个人通过代理商购买物联网卡之后,万一代理商拿钱跑路,物联网卡无法使用造成财产损失。物联网卡和普通流量卡的相同点就是流量比较便宜,是大家都比较喜欢的,因为都是流量多,所以很多人都认为普通的流量卡也是物联网卡。现在大家用手机看视频,看小说都是用手机,都希望手机有无限的流量,而且费用也是要比较低,所以个人认为流量卡就是物联网卡。
  • [交流吐槽] 无法使用https clone代码
    如题,我无法使用https clone我的代码我输入用户名是 tiixab/tiixab密码也是我的登陆密码,但是报错remote: 用户名或密码错误,请输入正确的用户名[账户名/用户名]和密码!remote: 具体可以点击 代码托管首页-设置我的HTTPS密码 查看remote:  如果您设置了凭证管理[credential.helper], 请先清理.我没法重置我的https密码,邮件三天后可用没有十年脑血栓想不出来这种操作好吧
  • [技术干货] BES集成KAE加速器配置
    目录-1 鲲鹏KAE加速 -1.1 BES集成KAE加速器原理 -1.2 BES使用KAE配置说明 -1.2.1 开启https -1.2.2 选择SSL引擎为OpenSSL -1.2.3 KAE安装和配置 -1.2.4 BES配置长连接和短链接 -1.2.5 判断KAE加速器是否生效1  鲲鹏KAE加速      KAE加速引擎是鲲鹏应用使能套件BoostKit的基础加速能力,包含加解密、压缩/解压缩等模块。通过KAE加速HTTPS的RSA握手能大幅提升中间件处理HTTPS连接的性能。在启用KAE硬件license后,BES可以充分发挥硬件加速的能力。1.1  BES集成KAE加速器原理         BES通过JNI方式调用KAE加速库完成HTTPS握手和通信。1.2       BES使用KAE配置说明    1.2.1       开启https      1.2.2       选择SSL引擎为OpenSSL      1.2.3       KAE安装和配置                     KAE安装和配置参考华为云官网:https://support.huaweicloud.com/devg-kunpengaccel/kunpengaccel_16_0007.html                  1.2.4       BES配置长连接和短链接                   长连接:长连接最大请求数配置为-1,表示不限制连接处理的http请求数                 短链接:长连接最大请求数配置为1,表示处理一个请求之后断开连接      1.2.5       判断KAE加速器是否生效cat /sys/class/uacce/hisi_*/attrs/available_instances                    为确保正确使能KAE引擎,压测过程中查看可以查看上述队列数据是否变化,未生效时,全部是256,生效时,有一些变成小于256。 
  • [问题求助] 【香港启德IOC】【ROMA LiveData】函数API中请求第三方https地址不通
    【功能模块】LiveData-->函数API开发【操作步骤&问题现象】在函数API中调用南向系统的接口,请求地址是https的,一直不通原因分析:1.南向系统需要添加ROAM服务白名单,已添加2.请求时需忽略https证书校验,已忽略(https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=180222)请协助排查,13259109371,比较紧急。【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【香港启德IOC】【ROMA LiveData】函数API中请求第三方https地址如何忽略证书
    【功能模块】LiveData-->函数API开发【操作步骤&问题现象】我需要在函数API中调用南向系统的接口,请求地址是https的,需要忽略证书校验,请问怎么实现?13259109371【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 物联网通信协议汇总
    物联网曾被认为是继计算机、互联网之后,信息技术行业的第三次浪潮。随着基础通讯设施的不断完善,尤其是 5G 的出现,进一步降低了万物互联的门槛和成本。物联网本身也是 AI 和区块链应用很好的落地场景之一,各大云服务商也在纷纷上架物联网平台和服务。物联网通讯是物联网的一个核心内容,目前物联网的通讯协议并没有一个统一的标准,比较常见的有MQTT、CoAP、DDS、XMPP 等,在这其中,MQTT(消息队列遥测传输协议)应该是应用最广泛的标准之一。目前,MQTT 已逐渐成为 IoT 领域最热门的协议,也是国内外各大物联网平台最主流的传输协议,阿里云 IoT 物联网平台很多设备都是通过 MQTT 接入。1、MQTT 简介《MQTT 协议规范中文版》一书中对 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)进行了描述:MQTT 是一种基于客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、 简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。----MQTT 协议中文版与 HTTP 协议一样,MQTT 协议也是应用层协议,工作在 TCP/IP 四层模型中的最上层(应用层),构建于 TCP/IP协议上。MQTT 最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。如今,MQTT 成为了最受欢迎的物联网协议,已广泛应用于车联网、智能家居、即时聊天应用和工业互联网等领域。目前通过 MQTT 协议连接的设备已经过亿,这些都得益于 MQTT 协议为设备提供了稳定、可靠、易用的通信基础。2、MQTT 的主要特性MQTT 协议是为工作在低带宽、不可靠网络的远程传感器和控制设备之间的通讯而设计的协议,它具 有以下主要的几项特性:①、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。②、基于 TCP/IP 提供网络连接。主流的 MQTT 是基于 TCP 连接进行数据推送的,但是同样也有基于 UDP 的版本,叫做 MQTT-SN。③、支持 QoS 服务质量等级。根据消息的重要性不同设置不同的服务质量等级。④、小型传输,开销很小,协议交换最小化,以降低网络流量。这就是为什么在介绍里说它非常适合"在物联网领域,传感器与服务器的通信,信息的收集",要知道嵌入式设备的运算能力和带宽都相对薄弱,使用这种协议来传递消息再适合不过了,在手机移动应用方面,MQTT 是一种不错的 Android 消息推送方案。⑤、使用 will 遗嘱机制来通知客户端异常断线。⑥、基于主题发布/订阅消息,对负载内容屏蔽的消息传输。⑦、支持心跳机制。3、MQTT 历史MQTT 协议最初版本是在 1999 年建立的,该协议的发明人是的 Andy Stanford-Clark 和 Arlen Nipper。MQTT 最初是用于石油管道的传感器与卫星之间数据传输。他们当时正在开发一个利用卫星通讯监控 输油管道的项目,为了实现这个项目要求,他们需要开发一种用于嵌入式设备的通讯协议,这种通讯协议必须满足以下条件:⚫ 易于实现,服务器必须要实现成千上万个客户端的接入⚫ 数据传输的服务质量可控,根据数据的重要性和特性,设置不同等级的服务质量⚫ 占用带宽小,单次数据量小,但不能出错⚫ 必须能够适应高延迟、掉线、断网等网络通信不可靠的风险⚫ 设备连接状态可知,云端与设备端保持长连接通过以上几个条件可知:⚫ MQTT 服务器可以连接大量的远程传感器和控制设备,与远程客户端保持长连接,具有一定的实 时性。⚫ 云端向设备端发送消息,设备端可以在最短的时间内接收到并作出回应。⚫ MQTT 更适合需要实时控制的场合,尤其适合执行器。⚫ 云端与客户端需要保持长连接,要能够获取到设备的连接状态,就需要时不时地发送心跳包,这就不会省电,所以,MQTT 并不适合低功耗场合。可以看出,MQTT 从诞生之初就是专为低带宽、高延迟或不可靠的网络而设计的。虽然历经几十年的更新和变化,以上这些特点仍然是 MQTT 协议的核心特点。但是与最初不同的是,MQTT 协议已经从嵌入式系统应用拓展到开放的物联网(IoT)领域。4、MQTT 版本目前 MQTT 主流版本有两个,分别是 MQTT3.1.1 和 MQTT5。MQTT3.1.1 是在 2014 年 10 月发布的,而 MQTT5 是在 2019 年 3 月发布的。虽然 MQTT3.1.1 与 MQTT5 在时间相差了将近五年,但是 MQTT3.1.1作为一个经典的版本,目前仍然是主流版本,能够满足大部分实际需求。MQTT5 是在 MQTT3.1.1 的基础上进行了升级,因此 MQTT5 是完全兼容 MQTT3.1.1 的。而 MQTT5 是 在 MQTT3.1.1 的基础上添加了更多的功能、补充完善 MQTT 协议。5、MQTT 协议MQTT 是一种基于客户端-服务端架构(C/S)的消息传输协议,所以在 MQTT 协议通信中,有两个最为重要的角色,它们便是服务端和客户端。1)服务端MQTT 服务端通常是一台服务器(broker),它是 MQTT 信息传输的枢纽,负责将 MQTT 客户端发送来的信息传递给 MQTT 客户端;MQTT 服务端还负责管理 MQTT 客户端,以确保客户端之间的通讯顺畅,保证 MQTT 信息得以正确接收和准确投递。2)客户端MQTT 客户端可以向服务端发布信息,也可以从服务端收取信息;我们把客户端发送信息的行为称为 “发布”信息。而客户端要想从服务端收取信息,则首先要向服务端“订阅”信息。“订阅”信息这一操作 很像我们在使用微信时“关注”了某个公众号,当公众号的作者发布新的文章时,微信官方会向关注了该公众号的所有用户发送信息,告诉他们有新文章更新了,以便用户查看。3)MQTT 主题上面我们讲到了,客户端想要从服务器获取信息,首先需要订阅信息,那客户端如何订阅信息呢?这里我们要引入“主题(Topic)”的概念,“主题”在 MQTT 通信中是一个非常重要的概念,客户端发布信息以及订阅信息都是围绕“主题”来进行的,并且 MQTT 服务端在管理 MQTT 信息时,也是使用“主题”来控制的。客户端发布消息时需要为消息指定一个“主题”,表示将消息发布到该主题;而对于订阅消息的客户端 来说,可通过订阅“主题”来订阅消息,这样当其它客户端或自己(当前客户端)向该主题发布消息时,MQTT 服务端就会将该主题的信息发送给该主题的订阅者(客户端)。服务端如何通过“主题”来控制客户端之间的信息通讯,看下图实例:在以上图示中一共有三个 MQTT 客户端,它们分别是开发板、手机和电脑。MQTT 服务端在管理 MQTT通信时使用了“主题”来对信息进行管理。比如上图所示,假设我们需要利用手机和电脑获取开发板在运行过程中 SoC 芯片的温度,那么首先电脑和手机这两个客户端需要向 MQTT 服务器订阅主题“芯片温度”;接下来,当开发板客户端向服务端的“芯片温度”主题发布信息(假设信息的内容就是当前的温度值)后,服务端就会首先检查都有哪些客户端订阅了“芯片温度”这一主题的信息,而当它发现订阅了该主题的客户端有一个手机和一个电脑,于是服务端就会将刚刚收到的“芯片温度”信息转发给订阅了该主题的手机和电脑客户端。通过以上的这种实例,手机和电脑便可以获取到开发板运行时 SoC 芯片的温度值。以上实例中,开发板是“芯片温度”主题的发布者,而手机和电脑则是该主题的订阅者。值得注意的是,MQTT 客户端在通信时,角色往往不是单一的,一个客户端既可以作为信息发布者也 可以同时作为信息订阅者。如下图所示:上图中的所有客户端都是围绕“LED 控制”这一主题进行通信。此时,对于“LED 控制”这一主题来 说,手机和电脑客户端成为了 MQTT 信息的发布者而开发板则成为了 MQTT 信息的订阅者(接收者)。所以由此可知,针对不同的主题,MQTT 客户端可以切换自己的角色,它们可能对主题 A 来说是信息发布者,但是对于主题 B 就成了信息订阅者,所以一个 MQTT 客户端它的角色并不是固定的,所以大家一定要理解“主题”这个概念。4)MQTT 发布/订阅特性从以上实例我们可以看到,MQTT 通信的核心枢纽是 MQTT 服务端,它负责将 MQTT 客户端发送来的信息传递给 MQTT 客户端,还负责管理 MQTT 客户端,以确保客户端之间的通讯顺畅,保证 MQTT 信息得以正确接收和准确投递。正是因为有了服务端对 MQTT 信息的接收、储存、处理和发送,客户端在发布和订阅信息时,可以相 互独立、且在空间上可以分离、时间上可以异步,这就是 MQTT 发布/订阅的特性:客户端相互独立、空间上可分离、时间上可异步,具体介绍如下:⚫ 客户端相互独立:MQTT 客户端是一个个独立的个体,它们无需了解彼此的存在,依然可以实现信息交流。⚫ 空间上分离:空间上分离相对容易理解,MQTT 客户端以及 MQTT 服务端它们在通信时是处于同一个通信网络中的,这个网络可以是互联网或者局域网;只要客户端联网,无论他们远在天边还是近在眼前,都可以实现彼此间的通讯交流;其实网络通信本就是如此,所以并不是 MQTT 通信所特有的。⚫ 时间上可异步:MQTT 客户端在发送和接收信息时无需同步。这一特点对物联网设备尤为重要,前面我们也介绍了,MQTT 从诞生之初就是专为低带宽、高延迟或不可靠的网络而设计的,高延迟和不可靠网络必然就会导致时间上的异步;物联网设备在运行过程中发生意外掉线是非常正常的情况。6、总结向大家介绍了 MQTT 通信的基本原理,在 MQTT 通信中,1 个服务端、多个客户端之间围绕“主题”进行了通信,所以重要在于大家需要理解各个客户端的相互关系以及服务端在其中所起的作用,并且理解“主题”这个概念以及 MQTT 发布/订阅模式的特性,后面向大家介绍具体的通信过程时,要迅速的反应过来。注意:对于 MQTT 发布/订阅模式的特性,我们总结的几个特点中都有一个“可”字。这 个“可”字意味着客户端彼此之间可以独立,空间可以分离,时间可以异步。在我们实际应用中,客户端之间的关系既可以独立也可以相互依存。在空间上,既可以相距甚远,也可以彼此相邻。在时间上,既可以异步也可以同步。这个“可”字所体现的是 MQTT 通讯的灵活性。————————————————原文链接:https://blog.csdn.net/yangxueyangxue/article/details/122654426
  • [技术干货] VMware:“Linux恶意软件呈上升趋势”[转载]
    网络安全一直是IT行业最为关注的话题,Java之父James Gosling曾在采访中表示“目前,我们依然有各种各样的安全问题,网络攻击不断,如果有一种方式,可以终结网络安全隐患,那将是非常好的。”在众多的操作系统中,Linux算是比较安全的,前提是你在服务器或云端上正确的安装了Linux,并且给它提供了一定的防护。尽管这样,也无法百分百保证它不面临安全威胁。VMware威胁分析部门(TAU)在其最新威胁报告中,就Linux多云环境下的恶意软件进行了详细探讨。图片来源VMware我们都知道,Linux是世界范围内的顶级云操作系统,它为人们常用网站中超过78%的网站提供支持。黑客们都是聪明人,他们也知道针对云计算的批发要比针对Windows PC零售能赚取更多的钱。因此,黑客们把更多的精力放在了脆弱的基于Linux的多云环境上。 图片来源W^3Techs破解基于Linux的多云环境虽然破解基于Linux的多云环境很困难,但成功破解后的可观收益驱使着黑客们投入更多的精力。通常,利用破解工具来攻击基于Linux的多云环境基本是不可能完成的。但他们可以针对基于容器的基础设施中那些脆弱的认证、漏洞以及错误配置,利用远程访问工具(RATs)渗透到云环境中。一旦他们在你的云中有了一个立足点,就会尝试运行勒索软件或是部署加密组件,而这一切的目的都是为了钱。日渐复杂的勒索软件工具VMware表示,由于自己之前一直没有专注于检测这些威胁,导致Linux的恶意软件检测和预防工具长时间没有过更新。这意味着,现有的工具已经不能胜任检测与预防威胁这项工作了。而检测与预防工具的落后,却要面对更加复杂的基于Linux系统而制作的勒索软件,这些勒索软件现在的安全威胁等级更高,而且更难查找。例如,现在针对Linux的勒索软件有些已经发展到针对主机图像的地步,而想要找到这些恶意软件需要开启动态分析和主机监控。这意味着如果你的计算机中真的存在这种勒索软件,你很难清楚的知道它带来的影响。现在有不少于9个勒索软件家族在针对Linux。其中包括REvil的Linux版本;DarkSide;BlackMatter以及Defray777等。其中有几个是提供给那些没什么技术但是想赚点快钱的人的。这些人也可以通过这些勒索软件来找受害者要赎金。逍遥法外的加密劫持者加密劫持者是未经授权使用他人计算机来挖矿加密货币的人的称呼。一般加密劫持者选择的加密货币是Monero加密货币(XMR)。89%的Linux加密劫持者使用的都是XMRig的相关库。这些劫持者主要使用两种方法来达到目的。其一是利用具有窃取钱包功能的恶意软件,有时也会将恶意软件冒充为基于加密货币的应用程序。其二就是利用偷来的CPU周期挖掘加密货币。无论是那种方式,挖掘加密货币的代码都是在后台运行的,因此毫无戒心的受害者是不会发现有人在使用自的计算机挖加密货币的,他们只是会好奇自己的计算机为什么运行性能降低了,程序执行也比以前滞后。目前有7个恶意软件家族在这方面针对Linux,包括XMRig、Sysrv和Mexalz等。除了针对Linux多云环境的攻击,还有许多专门针对常见的云计算配置的攻击。例如,TeamTNT的恶意软件制作者针对开放的Kubernetes pods和Docker来部署XMRig加密软件。为了逃避对恶意软件的检测,它劫持了数据库加载机制,以此隐藏在/proc文件系统的特定目录中,从而隐藏加密器的进程。为了使自己的恶意软件能够进入到受害者的系统中,这些勒索软件的开发者中,越来越多的人使用RATs。VMware的研究团队发现,自2020年2月底以来,互联网上有超过14000个活跃的Cobalt Strike团队服务器。这个Red Team的软件是为了帮助你保护你的系统,但现在有约56%的Cobalt Strike服务器被破解了或是早就已经泄露了的Cobalt Strike实例。可以说其中大部分已经被这帮黑客利用了。网络安全近几年真的是令人头疼的问题,为了避免重蹈Apache Log4j这类开源安全问题,谷歌提出了三项安全倡议。现在VMware也发布了这篇文章来提醒你,保护好你的Linux。面对这些安全威胁,我们能做的就是给自己的计算机周全的防护。参考链接:VMware Finds Linux Malware on the Rise – The New Stack————————————————版权声明:本文为CSDN博主「、左耳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_43529978/article/details/122964991
  • [问题求助] HttpServerFilter获取不到query?
    项目做国际化,经常出现中英文混合,无法解决。有使用了Edge网关。本地 测试 生产 HttpServerFilter获取不到query,无法拿到queryParam中lang参数(第一处打印为null)。后来在edge中handler中加 invocation.addContext("lang", langStr); 在测试环境可以获取到(第二处有打印),但在测试 生产 获取不到。设置语言是通过一个接口设置的,代码类似上面if里面的。整体没有问题,但在连续多次切换中英文时会发生混乱。有大佬遇到这种情况吗?求助大佬能指点一下。
总条数:141 到第
上滑加载中