kopia lustrzana https://github.com/Yakifo/amqtt
Add SSL connect to WS connection
rodzic
9d0ee85497
commit
103f7e8419
|
@ -211,7 +211,10 @@ class MQTTClient:
|
||||||
self.session.password = uri_attributes.password
|
self.session.password = uri_attributes.password
|
||||||
self.session.remote_address = uri_attributes.hostname
|
self.session.remote_address = uri_attributes.hostname
|
||||||
self.session.remote_port = uri_attributes.port
|
self.session.remote_port = uri_attributes.port
|
||||||
if scheme == 'mqtts':
|
if scheme in ('mqtt', 'mqtts') and not self.session.remote_port:
|
||||||
|
self.session.remote_port = 8883 if scheme == 'mqtts' else 1883
|
||||||
|
|
||||||
|
if scheme in ('mqtts', 'wss'):
|
||||||
if self.session.cafile is None or self.session.cafile == '':
|
if self.session.cafile is None or self.session.cafile == '':
|
||||||
self.logger.warn("TLS connection can't be estabilshed, no certificate file (.cert) given")
|
self.logger.warn("TLS connection can't be estabilshed, no certificate file (.cert) given")
|
||||||
raise ClientException("TLS connection can't be estabilshed, no certificate file (.cert) given")
|
raise ClientException("TLS connection can't be estabilshed, no certificate file (.cert) given")
|
||||||
|
@ -220,19 +223,19 @@ class MQTTClient:
|
||||||
cafile=self.session.cafile,
|
cafile=self.session.cafile,
|
||||||
capath=self.session.capath,
|
capath=self.session.capath,
|
||||||
cadata=self.session.cadata)
|
cadata=self.session.cadata)
|
||||||
if scheme in ('mqtt', 'mqtts') and not self.session.remote_port:
|
|
||||||
self.session.remote_port = 8883 if scheme == 'mqtts' else 1883
|
|
||||||
|
|
||||||
|
# Open connection
|
||||||
if scheme in ('mqtt', 'mqtts'):
|
if scheme in ('mqtt', 'mqtts'):
|
||||||
conn_reader, conn_writer = \
|
conn_reader, conn_writer = \
|
||||||
yield from asyncio.open_connection(self.session.remote_address, self.session.remote_port, ssl=sc)
|
yield from asyncio.open_connection(self.session.remote_address, self.session.remote_port, ssl=sc)
|
||||||
reader = StreamReaderAdapter(conn_reader)
|
reader = StreamReaderAdapter(conn_reader)
|
||||||
writer = StreamWriterAdapter(conn_writer)
|
writer = StreamWriterAdapter(conn_writer)
|
||||||
elif scheme == 'ws':
|
elif scheme == ('ws', 'wss'):
|
||||||
websocket = yield from websockets.connect(self.session.broker_uri)
|
websocket = yield from websockets.connect(self.session.broker_uri, ssl=sc)
|
||||||
reader = WebSocketsReader(websocket)
|
reader = WebSocketsReader(websocket)
|
||||||
writer = WebSocketsWriter(websocket)
|
writer = WebSocketsWriter(websocket)
|
||||||
|
|
||||||
|
# Handle MQTT protocol
|
||||||
self._handler = ClientProtocolHandler(reader, writer, loop=self._loop)
|
self._handler = ClientProtocolHandler(reader, writer, loop=self._loop)
|
||||||
self._handler.attach_to_session(self.session)
|
self._handler.attach_to_session(self.session)
|
||||||
yield from self._handler.start()
|
yield from self._handler.start()
|
||||||
|
|
Ładowanie…
Reference in New Issue