kopia lustrzana https://github.com/Yakifo/amqtt
Method move
rodzic
933f2a2f94
commit
f94135c315
|
@ -242,7 +242,7 @@ class MQTTClient:
|
|||
self._session.local_address, self._session.local_port = self._session.writer.get_extra_info('sockname')
|
||||
|
||||
# Send CONNECT packet and wait for CONNACK
|
||||
packet = ConnectPacket.build_request_from_session(self._session)
|
||||
packet = self._session.build_connect_packet()
|
||||
yield from packet.to_stream(self._session.writer)
|
||||
self.logger.debug(" -out-> " + repr(packet))
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
from hbmqtt.mqtt.packet import MQTTPacket, MQTTFixedHeader, PacketType, MQTTVariableHeader, MQTTPayload
|
||||
from hbmqtt.codecs import *
|
||||
from hbmqtt.errors import MQTTException, CodecException, HBMQTTException, NoDataException
|
||||
from hbmqtt.session import Session
|
||||
|
||||
|
||||
class ConnectVariableHeader(MQTTVariableHeader):
|
||||
|
@ -209,36 +208,3 @@ class ConnectPacket(MQTTPacket):
|
|||
super().__init__(header)
|
||||
self.variable_header = vh
|
||||
self.payload = payload
|
||||
|
||||
@classmethod
|
||||
def build_request_from_session(cls, session: Session):
|
||||
vh = ConnectVariableHeader()
|
||||
payload = ConnectPayload()
|
||||
|
||||
vh.keep_alive = session.keep_alive
|
||||
vh.clean_session_flag = session.clean_session
|
||||
vh.will_retain_flag = session.will_retain
|
||||
payload.client_id = session.client_id
|
||||
|
||||
if session.username:
|
||||
vh.username_flag = True
|
||||
payload.username = session.username
|
||||
else:
|
||||
vh.username_flag = False
|
||||
|
||||
if session.password:
|
||||
vh.password_flag = True
|
||||
payload.password = session.password
|
||||
else:
|
||||
vh.password_flag = False
|
||||
if session.will_flag:
|
||||
vh.will_flag = True
|
||||
vh.will_qos = session.will_qos
|
||||
payload.will_message = session.will_message
|
||||
payload.will_topic = session.will_topic
|
||||
else:
|
||||
vh.will_flag = False
|
||||
|
||||
header = MQTTFixedHeader(PacketType.CONNECT, 0x00)
|
||||
packet = cls(header, vh, payload)
|
||||
return packet
|
||||
|
|
|
@ -6,6 +6,7 @@ import logging
|
|||
from enum import Enum
|
||||
from hbmqtt.mqtt.packet import PacketType
|
||||
from hbmqtt.mqtt.packet import MQTTFixedHeader
|
||||
from hbmqtt.mqtt.connect import ConnectVariableHeader, ConnectPacket, ConnectPayload
|
||||
from hbmqtt.mqtt import packet_class
|
||||
from hbmqtt.errors import NoDataException
|
||||
|
||||
|
@ -48,6 +49,39 @@ class Session:
|
|||
self.incoming_queues[p] = asyncio.Queue()
|
||||
self.outgoing_queue = asyncio.Queue()
|
||||
|
||||
def build_connect_packet(self):
|
||||
vh = ConnectVariableHeader()
|
||||
payload = ConnectPayload()
|
||||
|
||||
vh.keep_alive = self.keep_alive
|
||||
vh.clean_session_flag = self.clean_session
|
||||
vh.will_retain_flag = self.will_retain
|
||||
payload.client_id = self.client_id
|
||||
|
||||
if self.username:
|
||||
vh.username_flag = True
|
||||
payload.username = self.username
|
||||
else:
|
||||
vh.username_flag = False
|
||||
|
||||
if self.password:
|
||||
vh.password_flag = True
|
||||
payload.password = self.password
|
||||
else:
|
||||
vh.password_flag = False
|
||||
if self.will_flag:
|
||||
vh.will_flag = True
|
||||
vh.will_qos = self.will_qos
|
||||
payload.will_message = self.will_message
|
||||
payload.will_topic = self.will_topic
|
||||
else:
|
||||
vh.will_flag = False
|
||||
|
||||
header = MQTTFixedHeader(PacketType.CONNECT, 0x00)
|
||||
packet = ConnectPacket(header, vh, payload)
|
||||
return packet
|
||||
|
||||
|
||||
@property
|
||||
def next_packet_id(self):
|
||||
self._packet_id += 1
|
||||
|
|
Ładowanie…
Reference in New Issue