0

0

物联网的实时性问题 B/S架构的客户端Socket编程?

php中文网

php中文网

发布时间:2016-06-07 08:44:28

|

3411人浏览过

|

来源于php中文网

原创

本人参与一个物联网项目,从底层PLC到服务器,再到客户PC,进行实时监控。希望客户端尽可能实现跨平台,就考虑B/S架构实现,但B/S架构有一个十分明显的缺陷,就是无法建立长连接实现实时的数据显示,大家有什么较好的思路或者解决方案,相互分析和探讨。
有研究和考虑在客户端使用HTML5实现,但现在HTML5普及度是一个问题。
如有描述不周,还请见谅,望有利于今后物联网的工程实现。
————————————————————————————————
现在考虑HTML5实现,有清楚HTML5的优缺点的么?
————————————————————————————————
统一了下大家的回答和我们现行的方案:
Web前端用HTML5实现websocket,低版本浏览器使用flash或 Socket.IO进行websocket通信.
服务器端也实现websocket。
————————————————————————————————
重新看了标题,想解释为什么是B/S架构的客户端Socket编程?
B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。跨平台必然是以后客户端开发的重要因素。
物联网系统发展趋势,是将B/S与C/S的优势完美地结合起来,就是说,物联网的应用系统既能以B/S的方式发布运行,同时又具有C/S方式的极强的可操作性。
以后物联网是大数据时代,客户端承载数据的显示,而数据的分析必然要放到后台服务器,所以Web Broswer是目前就为不错的方式,但物联网还有实时性控制和数据展示的问题,比如调用远端的摄像头,家里的火警报警器等,这就是目前HTTP协议不能做到的,因此需要Socket方式来保证实时性。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
对物联网斗胆发表个人愚见,望抱砖引玉,如有错误,还望大家见谅指正。

TemPolor
TemPolor

AI音乐生成器,一键创作免版税音乐

下载

回复内容:

假设你写一个 Javascript 小程序,每隔 1s 就发送一次 HTTP 请求到同一个 URL 获取一次数据,那么你可能很自然的会想这会导致不断的重复建立连接做收发,不太好。

但是实际上,HTTP 1.1 默认是启用了 Keep-Alive 特性的,允许连接复用,也就是说,如果你用的浏览器不是太古老,那么这样的轮询程序实际上比你想象的还要高效——因为只有你第一次发送请求时才会为你建立连接,之后你继续发送请求都会优先使用这同一个连接。所以“长连接”实际上早就被实现了。而且甚至没有被程序员意识到。

你遇到的问题并不是“长连接”问题,而是数据的“推/拉”问题。也就是说,你真正想要的,是服务端能够主动的将数据源源不断的发送给客户端——而这一点恰好是 HTTP 协议的软肋。这也是为什么会有 websocket 的一个重要原因。

一种方法是使用 socket.io 之类的库。还有一种容易被忽视的方案是使用一种改进的轮询方案:comet 。

当然我不知道你需要实时显示的数据的单位时间内的流量,对延迟的容忍性,所以其他方面也给不了建议了。 其实可以采用flash外挂结合支持websocket的浏览器实现,
1,flash是可以开启socket链接的,在页面嵌入一个不可见的flash,接收消息逻辑封装在此,然后使用javascript和flash进行消息之间的交互
2,如果浏览器支持websocket则优先采用websocket,消息接口可以定义好,具体2种实现。 websocket
要兼容老浏览器可以考虑 socket.io 之类的方案。 看一下这张图
物联网的实时性问题  B/S架构的客户端Socket编程?
stackoverflow.com/quest socket.io
至于兼容性的问题,都要做物联网比较前沿的东西了还不推动技术进步么。 1. 轮询方式 参看 @林建入 的答案

2. 伪长连接方式,也叫长轮询模式 客户端链接到服务器后,服务器一直不要断开,用trunk方式,有数据就输出,类似页面一直未加载完的状态。客户端如果发现链接被网关断开,则重新连接。服务器也可以实现推送机制。早期的网页聊天室基本是这种方式实现的。
补充: 早期网页版本用的是iframe方式的长轮询,而新的都用的是Ajax方式请求。看了一下微信的网页版聊天,也用的是这种模式。这种模式的浏览器兼容性是最好的。

3. websocket

4. 浏览器插件

补充: 具体参看
Comet (programming)

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.9万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 10.1万人学习

前端开发(基础+实战项目合集)
前端开发(基础+实战项目合集)

共60课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号