有很多通信模块只有TCP功能,没有MQTT功能,比如WIFI,W5500等模块,还有一些NBIOT模块,但是又想连接阿里云物联网平台,官方提供了操作系统,需要自己移植,很麻烦,比较难看得懂。就在想有没有一些简单一定的方法。
心想MQTT是基于TCP的,能否使用TCP转MQTT?因此就想使用TCP协议然后转MQTT协议连接阿里云物联网平台,经过试验证明是可以的。
首先我们先分析一下如何登陆接入Onenet平台。
先从它数据格式开始分析。首先我们要从后台取出三个信息,我们以这个为例。
我们把产品ID,设备名称,设备秘钥,简称三要素 (具体是什么看你自己的设备)。
其实阿里云物联网平台的MQTT协议用的就是标准的,不过它加入了自己的认证方式。
MQTT协议需要上传四个参数,报活时间,clientID,用户名,密码。
那么阿里云的就在clientID,用户名,密码做了手脚。
clientID比较长,按照一定的格式。
用户名:设备名和秘钥组成
密码:使用了加密串进行了加密,有sha1或者MD5加密方式。
下面我们来介绍一下
MQTT接入都是发十六进制的数据。
么我们发送的时候就是这样子的一串数据。
0x74 0x00 0x04 0x4d 0x51 0x54 0x54 0x04 0xC0 0078 0033 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67。
0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c 0009。
0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34 0028 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36。
十六进制解释
数据长度:0x74
协议数据长度 0x00 0x04。
协议类型: 0x4d 0x51 0x54 0x54。
协议数据: 0x04 0xC0。
keepAlive数据:0078。
ClientID长度:0033。
ClientID: 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67 0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c。
用户名:0009
用户名: 0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34。
密码长度:0028
密码: 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36复制代码上面的就是连接服务器的连接包。
下面呢,我们来做个发布包(上传数据到服务器)。
0x30 0x1D 0009 2f7379732f706f7374 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d。
十六进制数据解释
数据头:0x30
数据长度:0x1D
TopicName数据长度:0009。
TopicName数据内容:2f7379732f706f7374。
主体json数据: 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d复制代码以上就是连接阿里云的数据包格式及发布数据的格式,由于时间问题没有做订阅的数据包分析,下一次更新订阅的内容。
手机端下载安装。
海康智存app是一款多功能存储设备,方便在本地和云之间传输数据。支持离线下载,自定义下载路径等功能。在手机端进行下载操作阿里云即可同步到海康智存。
海康智存是一款管理智能存储设备的手机应用。通过手机与智能设备交互,为照片、视频、通讯录等各种文件提供安全存储,并可实现相机照片SD卡、U盘的自动上传与便捷分享,摆脱繁琐的电脑操作。
1、首先打开苹果、安卓手机,在各大应用市场下载阿里智能APP。
2、其次打开阿里智能软件,在我的界面用淘宝账号登录。
3、然后登录账号后回到主页,点击右上角+号添加设备,或者点击右上角+号扫一扫,直接扫描说明书上面二维码进行配网(这里以风扇灯为例)在分类查找里面查找。
4、最后确保在连接家庭WIFI情况下,在风扇类目里面找到相应的产品,根据提示连续开关电源5次-下一步输入WIFI密码,等待配网即可。
g系列触摸屏通过屏幕触摸操作连接到阿里云物联网平台。
摘要: 本文介绍PC端直播推流与播放器快速接入方法,对移动端推流和播放可以参考官网文档。
作者简介:阿里花名樰篱,阿里云视频服务产品运营(我是一个爱好直播而且懂技术的女汉纸,欢迎点击名字关注我哦)
每每看到开发哥哥们对直播功能抓头苦闷,小妹我也是看在眼里着急在心里,其实看似复杂的直播功能,可以通过开通阿里云直播服务来快速集成的。开发哥哥们静下心来,花几分钟时间认真读完小妹这篇文章,相信你就知道如何在阿里云直播控制台快速接入PC端直播功能了:
直播流程
Step1:直播前准备
登录阿里云官网 ,点左上角登录。
登录视频直播控制台
控制台会检查所依赖服务的开通状态,请按页面引导操作。
** 添加直播域名**
需要注意的是:
直播域名需要进行备案审核,审核通过后即可使用,未备案的域名请先进行备案,备案流程。
域名配置成功后,这个域名会自动配置好 CDN 直播加速功能,域名进行CNAME绑定后即可使用直播加速功能。
CNAME绑定
将您添加的直播域名的DNS CNAME纪录修改为直播域名管理详情页面上显示的CNAME绑定地址。我们需要把阿里云提供的推流地址和直播域名进行绑定,这样当推流到直播域名时会推流到我们的直播中心。
请按照以下步骤进行域名CNAME绑定。
直播域名在万网申请
获取直播控制台直播域名对应的 CNAME。
点击阿里云官网控制台的域名解析页面,选择需要绑定的域名。
进入域名解析标签页,点击高级设置。
填写解析参数,并保存。
解析正常会很快生效,如果是新创建的域名解析不存在DNS刷新问题,如果是修改了CNAME,则不同的 DNS 上有缓存数据,可能最长需要48小时才能更新完毕。
直播域名在其他途径申请
其他途径申请的域名,请在域名所在网站操作域名CNAME绑定。
在阿里云控制台执行域名转入流程。
获取推流和播放地址
在 域名管理 中,点击直播加速域名 管理 :
鉴权配置
直播流媒体的推送和播放采用同一套鉴权方案,可以在控制台的鉴权配置中进行配置,详细了解鉴权配置。
注意
只有进行鉴权配置后,该加速域名才能正常进行推流和播流,直播业务类型仅支持A类型鉴权方式。
推流和播流地址需要分别进行鉴权签名计算,每一个签名都是严格按照URL计算的,故不可使用推流URL计算得到的签名应用到播流地址,同理每一种播流地址都会对应不同的鉴权计算结果。
举例:
在直播控制台 - 域名管理 - 直播域名管理详情页 - 鉴权配置 设置鉴权配置如下:
1、开启鉴权
2、手动输入鉴权主key值,详细内容访问 鉴权说明鉴权设置。
Step2:推流
获取鉴权后的推流地址:
直播控制台 - 域名管理 - 直播域名管理详情页 - 基本信息 取得推流地址如下:
rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=live.aliyun.com。
使用直播控制台 - 域名管理 - 直播域名管理详情页 - 鉴权配置 页面的鉴权URL计算器计算鉴权URL:
输入推流地址(AppName、StreamName可自行修改)、鉴权KEY、有效时间,点击<生成>按钮即可得到鉴权URL。
推流操作
推流地址:
rtmp://video-center.alivecdn.com/APPName/StreamName?vhost=live.aliyun.com。
说明
http://video-center.alivecdn.com是直播中心服务器,允许自定义,例如您的域名是http://live.aliyun.com(注意:该域名不可以和你的直播加速域名相同),可以设置DNS,将您的域名CNAME指向http://video-center.alivecdn.com即可。
APPName是应用名称,支持自定义,可以更改。
StreamName是流名称,支持自定义,可以更改。
vhost参数是最终在边缘节点播放的域名,即你的直播加速域名。
直播推流操作可使用第三方推流软件,这里介绍 OBS 推流软件的操作方法。
请到OBS官网下载最新软件 Windows版本 Mac版本。
在OBS 设置 中应按下图设置:
Mac版推流地址设置:
Windows版推流地址设置:
实际 Mac版obs的流密钥与Windows版播放路径/串码流(如果存在)中的内容不会显示明文。
以上面的推流地址为例,参数设置为:
FMS URL / URL: rtmp://http://video-center.alivecdn.com/AppName。
播放路径/串码流(如果存在)/ 流秘钥: StreamName?vhost=http://live.aliyn.com。
如您开启了鉴权,则鉴权参数也一并放在 Mac版obs的流密钥与Windows版播放路径/串码流(如果存在)中。
Step3:播放
用那种协议进行播放?
协议 | 优点 | 缺点 | 延时。
------- | ------- | -------。
FLV | 高并发、低延时 | 非标准做法,需要依赖SDK播放 | 1s-3s。
RTMP | 延时小 | 高并发支持不好 | 1s-3s。
HLS(M3U8) | 手机浏览器普遍支持 | 延时大 | >=10s,与切片时长有关,最大3个TS长度。
客户可以根据实际业务场景灵活搭配使用,需要在移动端浏览器、移动H5端进行播放,建议使用HLS(M3U8)方式进行播放,无需集成SDK;非移动端或者已集成SDK的,低并发量并需要有更小的延时,可使用RTMP,高并发量建议使用FLV。
Web页面后台直接预览
使用OBS等工具使用鉴权URL推流后,可在 直播控制台 - 流管理 - 正在推流 页面查询到正在直播的推流记录,通过 直播地址 可查询播放地址,并可预览播放。
通过VLC预览
下载VLC,默认安装后无需做额外设置,文件—>打开网络串流,填写播放地址并点击打开后开始播放。