iotserver.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:IotCenter 作者: panjanek 项目源码 文件源码
def sendMessage(self, deviceId, payload):
        self.logger.debug("Attempting do send message to device %s, payload %s", binascii.hexlify(deviceId), payload)
        if deviceId in self.sessions:
            session = self.sessions[deviceId]            
            if session.protocol == IotSession.TYPE_UDP:
                counter = self.getCounter(deviceId)
                message = UdpPacket(deviceId, UdpPacket.SERVER_TO_CLIENT, self.IOT_PROTOCOL_VERSION, counter.udpSentCounter, session.lastUdpMessage.counter1, payload)    
                deviceKey = iotcommon.deriveKey(self.masterKey, deviceId)
                data = message.createPacket(deviceKey)
                self.logger.info("Sending {0} bytes in UDP to device {1} at {2}:{3}".format(len(data), binascii.hexlify(message.deviceId), session.clientAddr[0], session.clientAddr[1]))
                with session.lock:
                    self.udpServer.socket.sendto(data, session.clientAddr)
                counter.udpSentCounter += 1
                self.saveState()
            elif session.protocol == IotSession.TYPE_SSL:
                self.logger.info("Sending {0} bytes by SSL to device {1} at {2}:{3}".format(len(payload), binascii.hexlify(deviceId), session.clientAddr[0], session.clientAddr[1]))
                with session.lock:
                    iotcommon.sendMessage(session.sslSocket, payload)
        else:
            self.logger.warning("could not send message to device - device %s is not connected", binascii.hexlify(message.deviceId))
            return False
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号