Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我们如何通过蓝牙低能耗(BLE)使用HTTP?_Android_Http_Bluetooth_Bluetooth Lowenergy - Fatal编程技术网

Android 我们如何通过蓝牙低能耗(BLE)使用HTTP?

Android 我们如何通过蓝牙低能耗(BLE)使用HTTP?,android,http,bluetooth,bluetooth-lowenergy,Android,Http,Bluetooth,Bluetooth Lowenergy,有没有办法将HTTP消息(GET、POST等)从BLE中心(客户端)发送到BLE外围设备(服务器)?目前,我使用GATT协议发送纯文本。由于HTTP服务器已经在我的外围设备中运行,我宁愿使用HTTP协议。有人建议我通过BLE使用HPS(HTTP代理服务)来完成这项工作。但我真的对HPS一无所知 有没有其他方法可以通过BLE将HTTP消息从客户端发送到服务器? 有人能告诉我怎么做吗?或者是否有其他方式通过BLE发送HTTP 任何帮助都将不胜感激 您询问除了标准化的HPS之外,是否还有其他方式通过蓝

有没有办法将HTTP消息(GET、POST等)从BLE中心(客户端)发送到BLE外围设备(服务器)?目前,我使用GATT协议发送纯文本。由于HTTP服务器已经在我的外围设备中运行,我宁愿使用HTTP协议。有人建议我通过BLE使用HPS(HTTP代理服务)来完成这项工作。但我真的对HPS一无所知

有没有其他方法可以通过BLE将HTTP消息从客户端发送到服务器? 有人能告诉我怎么做吗?或者是否有其他方式通过BLE发送HTTP

任何帮助都将不胜感激

您询问除了标准化的HPS之外,是否还有其他方式通过蓝牙发送HTTP消息。据我所知,您还有一个标准化选项。
唯一标准化的是IPv6 over BLE,但它远没有得到很好的支持。http的问题是,由于需要作为头发送的长字符串,它的效率非常低

您可以在此处找到HPS服务:

如果您确实希望通过BLE使用HTTP,但不希望使用任何标准化方法,例如,您可以打开L2CAP CoC,只需向一个方向发送HTTP请求,然后向一个方向发回HTTP响应。这样,您就可以用L2CAP CoC替换TCP


您可以使用蓝牙网关。一些蓝牙网关支持到运营商设备的Restful API。

我不同意Emil的说法,即通过蓝牙的IPv6是唯一的标准化选项。我为蓝牙SIG btw工作。HTTP代理服务是标准的GATT服务。您可以在此处下载规范:

这里有一些评论,大意是“蓝牙HTTP”是个坏主意,但没有详细说明什么是“坏主意”。我认为可能会对其中涉及的内容以及HTTP代理服务的预期用途产生一些混淆

此GATT HTTP代理服务必须在具有蓝牙低能(LE)堆栈和TCP/IP堆栈的设备上运行。它具有GATT特性,允许通过向这些特性写入值来配置HTTP请求。这包括HTTP头值。预期大多数此类参数在初始设置后不会改变,或至少不会频繁改变。作为GATT HTTP代理服务客户端的设备随后通过GATT服务器通过HTTP和TCP/IP间接发送数据。他们通过写入HTTP实体体特征来实现这一点。。。。通常为小值,如传感器读数。然后,GATT客户端设备通过向HTTP控制点特征写入一个字节来触发HTTP操作(例如,1触发HTTP GET)

谈论蓝牙上的HTTP可能用词不当。这不是这里发生的事情。这是一个三层体系结构,在(1)蓝牙设备和(2)双技术蓝牙和TCP/IP设备之间具有非常轻量级的蓝牙LE通信,充当代理,然后代理通过TCP/IP将其内部配置的蓝牙编码请求通信到(3)远程HTTP服务器

至于关于使用串行端口配置文件的评论,以及这将提供性能优势的建议,这也是值得怀疑的。这里没有关于设想的细节,但我假设整个HTTP操作都是通过使用串行端口配置文件的Bluetooth BR/EDR连接制定和发送的。蓝牙BR/EDR在物理层以每秒2兆符号的速度运行,默认情况下,蓝牙LE以每秒1兆符号的速度运行。但自从几年前发布Bluetooth 5以来,Bluetooth LE还支持每秒2兆符号。此外,由于HTTP代理服务的设计,HTTP请求的固定或很少变化的组件部分只需要配置一次,您可能会发现在使用HPS与SPP时传输的数据较少。这当然取决于具体情况,但我认为这很可能是


希望这有帮助

我得查一下HPS是什么。。“HTTP代理服务”。我想这是通过GATT处理HTTP的最好方法,但这似乎是个坏主意。如果您可以使用常规蓝牙,通过串行连接可能会获得更好的效果。谢谢Tim先生。我理解在GATT上使用HTTP是个坏主意。然而,我不得不通过BLE使用HTTP。你有没有其他建议,通过它我可以通过BLE实现HTTP。?HPS。我认为这是一个坏主意,但是负责BLE GATT规范的人认为HPS是一个很好的补充,所以它不会像我想的那么坏。如果有标准,就使用它。然而,正如我已经说过的,如果您不必使用BLE,并且可以使用常规蓝牙(因为许多设备都有这两种),那么通过类似串行的连接(“串行端口配置文件”我想就是它的名称),您就可以获得更快的吞吐量,并且您不必开发或找到HPS服务器。非常感谢Emil先生。我完全接受你的回答。谢谢。请按左边的绿色接受按钮:)老鼠!!我希望通过BLE发送一些AJAX请求,但是,因为它们是HTTP(S)…HTTP代理服务允许Bluetooth LE客户端使用它来规定代理在执行HTTP请求时必须使用HTTPS。HPS可能工作得很好,但是如果您只想通过BLE发送一些数据,我想这可能有点过头了。但是,如果您构建了一个大型系统,并且需要将BLE设备集成到现有的HTTP基础设施中,那么肯定是个好主意。HPS有多少种实现方式?我对这个问题的解释是,除了HPS,还有其他方式可以通过BLE发送HTTP消息,因为Shibin在问题中已经提到了HPS。如果您想将数据发送到HTTP服务器,您可以选择使用HTTP代理服务、蓝牙LE上的IPv6或专有解决方案。不确定“结束”