gpt4 book ai didi

java - 这是对 websocket 编程的适当使用吗?

转载 作者:行者123 更新时间:2023-12-03 11:52:12 25 4
gpt4 key购买 nike

我对 websockets 主题非常陌生,并且正在尝试找出处理设备和服务器之间通信的正确方法。

这是我的场景:我有一个恒温器(与 Nest 非常相似),它需要与 Web 服务器通信。每次您更改恒温器上的温度时,我都需要将数据发送到 Web 服务器以更新它在数据库中的“当前统计信息”。简单,我能做到。

我感到困惑并认为 websockets 可能是一个用例的部分是当用户从 web 界面更改温度时。恒温器必须从服务器中提取该信息才能看到“哦,好吧,你希望它是 66 度”。

我曾想过让恒温器每 2-5 秒对服务器进行一次长轮询,以查看数据库中的“当前统计信息”是什么来改变温度,但这似乎有点矫枉过正。

有没有办法打开恒温器和服务器之间的连接以收听消息?

我开始阅读有关 websockets 的道路,但是,不幸的是,我相信它只是基于浏览器的。

由于在这些类型的连接方面我对游戏相当陌生,如果有人能指出我在协议(protocol)、通信等方面的正确方向,我将不胜感激!

技术规范

服务器是用 Ruby on Rails 编写的

恒温器是用 Java 编写的

最佳答案

Websockets 可以在任意两个需要通信的程序之间使用,当然不限于浏览器。也就是说,您是否应该使用 websockets 是一个不同的问题。要考虑的一件事是 websockets 涉及持久连接。这可能无法扩展(如果您有很多设备),也可能是矫枉过正。如果您期望温度每天更改一次,那么一整天的持久连接是对资源的巨大浪费。当通信需要“快速”且相对频繁时,通常使用 websocket。除非您真的需要恒温器中的即时更新,否则我只会让它每隔几分钟 ping 服务器以进行更新。

旁注,websockets 是相当新的,所以你最终使用的任何库都可能有点不成熟。

不久前,我们对一些 java 到 java websockets 进行了原型(prototype)设计。我们使用了ning async客户端库和atmosphere服务器端的库(基于 netty 构建)。

关于java - 这是对 websocket 编程的适当使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com