在这件事上我是新手,我不知道为什么我的应用程序只在一个开放的网络中工作和运行,当在代理后面时,我会有一个返回错误。我正在使用raspberry zero,带有raspbian Stretch,使用azure-iot-sdk-python和proxy squid
我已经尝试过了:
代理允许HTTPS连接,并且所有端口都可用,并且没有任何限制和地址*。将azure-devices.net放在
$ nano / etc / squid / whitelist除此之外,我在操作系统中设置了代理,raspbian Stretch在
$ nano / etc / environment配置如下:
导出http_proxy = "http://192.168.2.254:3128/“
导出https_proxy = "https://192.168.2.254:3128/“
导出no_proxy =“本地主机,127.0.0.1”
而且还在
$ nano ~ / .bashrc导出http_proxy :3128
导出https_proxy = https: //192.168.2.254:3128
导出no_proxy =本地主机,127.0.0.1
和,
$ nano /etc/apt/apt.conf.d/90proxy获取::http ::Proxy "http://192.168.2.254:3128/";
获取::https ::Proxy "https://192.168.2.254:3128/";
from iothub_client import IoTHubClient, IoTHubTransportProvider, IoTHubMessage
import time
CONNECTION_STRING = "HostName=******.azure-devices.net;DeviceId=***;SharedAccessKey=*********"
PROTOCOL = IoTHubTransportProvider.MQTT
def send_confirmation_callback(message, result, user_context):
print("Confirmation received for message with result = %s" % (result))
if __name__ == '__main__':
client = IoTHubClient(CONNECTION_STRING, PROTOCOL)
message = IoTHubMessage("test message")
client.send_event_async(message, send_confirmation_callback, None)
print("Message transmitted to IoT Hub")
while True:
time.sleep(1)
Error: File: /usr/sdk/src/c/c-utility/adapters/socketio_berkeley.c Func: lookup_address_and_initiate_socket_connection Line: 282 Failure: getaddrinfo failure -3.
Error: File: /usr/sdk/src/c/c-utility/adapters/socketio_berkeley.c Func: socketio_open Line: 765 lookup_address_and_connect_socket failed
Error: File: /usr/sdk/src/c/c-utility/adapters/tlsio_openssl.c Func: on_underlying_io_open_complete Line: 760 Invalid tlsio_state. Expected state is TLSIO_STATE_OPENING_UNDERLYING_IO.
Error: File: /usr/sdk/src/c/c-utility/adapters/tlsio_openssl.c Func: tlsio_openssl_open Line: 1258 Failed opening the underlying I / O.
Error: File: /usr/sdk/src/c/umqtt/src/mqtt_client.c Func: mqtt_client_connect Line: 1000 Error: io_open failed
Error: File: /usr/sdk/src/c/iothub_client/src/iothubtransport_mqtt_common.c Func: SendMqttConnectMsg Line: 2122 failure connecting发布于 2019-05-21 05:04:21
您不能将HTTP代理与(本地) MQTT一起使用,它们是两个完全独立的协议。
如果您可以在WebSockets上使用MQTT,那么您应该能够使用HTTP代理,因为WebSockets最初是通过升级HTTP连接来建立的。
如果您的网络上有可用的SOCKS代理,那么您可以将其与本机MQTT一起使用。以下问题提供了有关如何在Python中使用SOCKS代理的提示。How can I use a SOCKS 4/5 proxy with urllib2?
https://stackoverflow.com/questions/56227683
复制相似问题