0
关注
9374
浏览

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

为什么被折叠? 0 个回复被折叠
林建入 核心会员 用户来自于: 北京市
2026-01-12 04:37
假设你写一个 Javascript 小程序,每隔 1s 就发送一次 HTTP 请求到同一个 URL 获取一次数据,那么你可能很自然的会想这会导致不断的重复建立连接做收发,不太好。 但是实际上,HTTP 1.1 默认是启用了 Keep-Alive 特性的,允许连接复用,也就是说,如果你用的浏览器不是太古老,那么这样的轮询程序实际上比你想象的还要高效——因为只有你第一次发送请求时才会为你建立连接,之后你继续发送请求都会优先使用这同一个连接。所以“长连接”实际上早就被实现了。而且甚至没有被程序员意识到。 你遇到的问题并不是“长连接”问题,而是数据的“推/拉”问题。也就是说,你真正想要的,是服务端能够主动的将数据源源不断的发送给客户端——而这一点恰好是 HTTP 协议的软肋。这也是为什么会有 websocket 的一个重要原因。 一种方法是使用 http://socket.io 之类的库。还有一种容易被忽视的方案是使用一种改进的轮询方案:comet 。 当然我不知道你需要实时显示的数据的单位时间内的流量,对延迟的容忍性,所以其他方面也给不了建议了。
jolestar 核心会员 用户来自于: 北京市
2026-01-12 04:16
1. 轮询方式 参看 @林建入 的答案 2. 伪长连接方式,也叫长轮询模式 客户端链接到服务器后,服务器一直不要断开,用trunk方式,有数据就输出,类似页面一直未加载完的状态。客户端如果发现链接被网关断开,则重新连接。服务器也可以实现推送机制。早期的网页聊天室基本是这种方式实现的。 补充: 早期网页版本用的是iframe方式的长轮询,而新的都用的是Ajax方式请求。看了一下微信的网页版聊天,也用的是这种模式。这种模式的浏览器兼容性是最好的。 3. websocket 4. 浏览器插件 补充: 具体参看 Comet (programming)
贺师俊 核心会员 用户来自于: 北京市
2026-01-12 03:45
websocket 要兼容老浏览器可以考虑 http://socket.io 之类的方案。
李亚楠 核心会员 用户来自于: 北京市
2026-01-12 04:39
http://socket.io。 至于兼容性的问题,都要做物联网比较前沿的东西了还不推动技术进步么。
liuwei 核心会员 用户来自于: 北京市
2026-01-12 03:35
其实可以采用flash外挂结合支持websocket的浏览器实现, 1,flash是可以开启socket链接的,在页面嵌入一个不可见的flash,接收消息逻辑封装在此,然后使用javascript和flash进行消息之间的交互 2,如果浏览器支持websocket则优先采用websocket,消息接口可以定义好,具体2种实现。
黄耀煌 核心会员 用户来自于: 北京市
2026-01-12 04:43
使用C#为后台开发的websocket物联网测控平台,带有监控直播,实时查看设备的状态、精准及时的远程控制、全双工高效实时通信,欢迎来我的站点体验websocket的各方面优势。 websocket在线测试
Letranger 核心会员 用户来自于: 北京市
2026-01-12 04:45
mqtt plus vpn

关于作者

问题动态

发布时间
2026-01-12 05:20
更新时间
2026-01-12 05:20
关注人数
0 人关注

相关问题

物联网云服务平台在智能家居中的有什么作用
问个问题,关于停车厂和门禁共用电脑的。
交换机设备之间的心跳问题
关于中央空调的机房控制的一些问题。
如何学习物联网安全?
视频会议转接问题
交换机组网问题
麻烦问下大咖们,这样强弱电一起走问题大不大?
求问各位大拿,一个会议传输问题
大专要填志愿 物联网应用技术和电气自动化技术该选哪一个 哪一个前景更好?

推荐内容

物联网专业学习什么?
大专要填志愿 物联网应用技术和电气自动化技术该选哪一个 哪一个前景更好?
智能家居里的布线为什么这么重要?
物联网应用技术专业成功就业容易吗?
低功耗广域网LoRa和Sigfox今年在试点铺网,华为也推出相关技术紧接其后,怎么看究竟谁能笑到最后?
女生职高学习数字媒体技术好还是物联网好?
RFID可以与Lora无线技术融合应用吗?
物联网行业该如何进入?
VR/AR之中需要运用那些物联网技术?
为什么zigbee技术没有兴盛起来?
All Rights Reserved Powered BY WeCenter V4.1.0 © 2026 粤ICP备20025096号-2
  

粤公网安备 44190002007303号