从HTTP到websocket
本帖最后由 生子当如哈士奇 于 2017-2-7 11:49 编辑背景:因毕业设计之故,着手研究IOT。当时我是在腾讯云使用nodejs+mongodb搭建了一个网页,STM32通过AT指令 控制ESP8266,对网页进行HTTP访问,实现了数据上传与网页控制的尝试。在完成了简单的尝试之后,申请了久闻大名的机智云板子来学习,希望能从中学习,得到提升。 很幸运申请成功,此为背景。(附上代码,写得不好,暂时只是简单的尝试,有待完善:https://github.com/alwxkxk/stm32_nodejs/tree/dev)
static/image/hrline/1.gif
从机智云的文档中心里我看到好多新名词,如:
机智云 Open API 是 RESTful 风格的 HTTP API,您可以使用任何标准的 HTTP 客户端访问机智云 Open API。
搜索REST,认真地学习一下,哦哦~,原来还有这东西呀~
没搞过网页的开发者们可能不知道REST意味着什么,我简单地拿自己举例:
当年我做的网页 上传数据是这样的(上传adc1=2.4): GET /upload?adc1=2.4
如果遵守RESTful的话,上传数据理应是这样的: POST /adc1
两者上性能上并没太大的差别,差别就在于前者是很土很out的做法,而后者是最佳实践之一。
于是我就把自己的改进了~虽说是我家住在四线城市,但来到一线大城市,想装逼的话,至少也得跟得上时代潮流吧~
static/image/hrline/1.gif
又如:
浏览器(Javascript)通过 Web Socket API,可以控制设备和实时接收设备上报的数据。
如果说RESTful HTTP没有给我带来性能上的优化,那么,websocket这个名词绝对为我带来了性能上的提升。
websocket是什么鬼东西?把websocket认真地学习了一下,哇哦~,原来还有这么好的东西呀~
我简单地说一下HTTP与websocket差距:
一来,websocket并不像HTTP那样带一大堆header,所以字节更少。
二来,更为重要的是,websocket允许服务器主动向客户端发送数据。这故事得从盘古开开辟地开始讲起,当年众神设计HTTP协议时,是拥有一个特点,“客户端问,服务器答”,一问一答意味着两个传输过程。
例如浏览器每秒从服务器取得一次adc1的实时数据,一分钟就得问60次,服务器答60次,共120次数据传输过程。
但如果使用websocket,只需要问1次,服务器“主动”地给浏览器传输60次adc1的实时数据,共61次数据传输过程。
更少的字节,服务器能主动传输,两个特点决定了websocket更快更强更好用~ 这意味着什么?一个传感器开一天有多少次数据传输,成千上万个传感器呢?成千上万个用户打开APP查看数据呢?后者节省了多少花费呀~
厉害了我的websocket,我马上给我的毕设也装上websocket。(nodejs里调用ws模块即可)
为了更好地装逼,我一直在努力~
至此,机智云给我带来了逼装上的提升,整个人走起路来都特别有劲。
static/image/hrline/1.gif
那么问题来了,究竟哪家挖掘机更好?
不好意思,说错了。那么像机智云这样的物联网云平台公司的营利点在哪里?
两点:节省研发费用周期,大大降低维护费用。
几天就能完成产品,省了开发费用应该是从一万到几万不等,这仍是小钱,大钱在于维护的费用。
举个例子,假如十个公司开发物联网智能家居产品,各自开一个服务器,各自请一个运营人员维护,共十个服务器,十个运营人员。
物联网云平台公司跟他们谈生意,你们各自给我交0.5个服务器,0.5个运营人员的费用,我帮你维护。而它只用了两个服务器,两个运营人员就实现了。
一算下来,花更少的钱,更好的产品,双赢,大家何乐而不为?
那么除了机智云,谁也在着手争夺物联网平台这个市场?
君不见阿里系的涂鸦,氦氪,中移动的oneNET等一大堆英雄辈出,我时不时在思考,机智云如何在这个市场上取得优势?(因为我申请的是机智云板呀,自然以机智云为第一人称,再说,机智云的逼格这么高,很符合我的性格。)
论谁家服务器更便宜,阿里云撑腰的阿里系绝对能以“亲朋好友”取得更便宜的服务器。
论谁家钱多,毫无疑问,中移动那富甲天下,烧钱谁怕谁呀。
当我注册涂鸦时,发现只有企业用户才能注册,我等小学生还是退下去吧,别打扰人家做生意了。
免费发板子供大家玩的,除了机智云,便是敢于烧钱的中移动oneNET。
有一个很有意思的点值得注意,机智云的友情链接是正点原子,oneNET的好朋友是野火。学stm32的都知道,这两家都是响当当的品牌。
如果机智云那板子用来当作“物联网学习板”,给新手极友好的入门教程,估计也能靠卖开发板补充一下弹药。
我看了一下同台PK的oneNET,在HTTP的调用上,比机智云简单得多,一个API key走天下,你有key证明你有权,任你飞,而机智云则是又要用户登陆,又要绑定硬件等一大堆操作,步骤显得烦琐多了。这对于本来就没多少网络知识的刚入物联网的硬件开发者,有不少知识上的阻碍~简单有简单的好处,复杂有复杂的用途。但特别注意的是,名词解释一定要放首位呀。 我简单说一下oneNET的特点,除了调用HTTP上更简单之外,它还支持各种各样的协议如MQTT,各方面的灵活性都显得更大些,比较有意思的是你可以设定所上传数据的时间,我试过把adc1的2.3V上传为2013年的数据~同时,由于国企运营商的特点,我猜它是更容易取得政府的订单吧。
而机智云也是有特点的,拥有“匠心”,不仅网页做的逼格更高一些,而且你们拿起你们的gokit看看,我时常拿起来感叹,这真是件艺术品呀~做产品做的真用心呀~~
static/image/hrline/1.gif
我这个没有任何行业经验的小学生哪敢断言谁能在这个物联网市场上取得优势,谁好谁坏还得看谁能笑到最后 。
反正我从机智云那里是学到了不少~
谢机智云的免费的板子~
建议:
1.机智云本来就有一大堆名词,名词解释一定要放首位呀。
2.个人体验的时候,拿到板,跑完demo后(demo给我的感觉就是证明软硬件没坏,能用,并没真正教会我怎么把这gokit一步步地开发成我的设备),就不知如何继续了,建议把下一步文档设置是“如何让gokit变成我的设备”(这已经有了,只不过是在社区里而不是在文档里,不太显眼的样子)。由于涉及软硬件,战线拉得很长,文档比较多,这参考文档“由浅入深”的合排序显得十分重要,能起到正确引导开发的作用。
3.唉,又给技术支持添加任务了,深感不安。{:3_45:}
建议部分有同感 楼主的这个建议阔以呀:如何让gokit变成我的设备
写的通俗易懂,赞一个。另外,有些文档在机智云文档中心有的,
名词解释:http://docs.gizwits.com/zh-cn/quickstart/noun.html
设备二次开发:http://docs.gizwits.com/zh-cn/quickstart/%E8%AE%BE%E5%A4%87%E5%BF%AB%E9%80%9F%E6%8E%A5%E5%85%A5.html
哈哈哈 有意思
页:
[1]