When i run this below given program it shows this following errors
C:\Users\DynaMech\Scripts\python.exe D:/Amirul/pythonProject/sock.py
Traceback (most recent call last):
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 451, in resolve
use_network=use_network)
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 406, in query
return end()
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 385, in end
raise result[1]
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 366, in step
a = fun(*args, **kwargs)
File "C:\Users\DynaMech\lib\site-packages\dns\resolver.py", line 1112, in query
True)
File "C:\Users\DynaMech\lib\site-packages\dns\resolver.py", line 1067, in resolve
resolution.errors)
File "C:\Users\DynaMech\lib\site-packages\dns\resolver.py", line 879, in _compute_timeout
raise LifetimeTimeout(timeout=duration, errors=errors)
dns.resolver.LifetimeTimeout: The resolution lifetime expired after 5.014 seconds: Server 192.168.17.17 UDP port 53 answered The DNS operation timed out.; Server 192.168.42.129 UDP port 53 answered The DNS operation timed out.; Server 117.96.122.34 UDP port 53 answered The DNS operation timed out.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:/Amirul/pythonProject/sock.py", line 30, in <module>
mqtt = Mqtt(app)
File "C:\Users\DynaMech\lib\site-packages\flask_mqtt\__init__.py", line 104, in __init__
self.init_app(app)
File "C:\Users\DynaMech\lib\site-packages\flask_mqtt\__init__.py", line 183, in init_app
self._connect()
File "C:\Users\DynaMech\lib\site-packages\flask_mqtt\__init__.py", line 210, in _connect
self.broker_url, self.broker_port, keepalive=self.keepalive
File "C:\Users\DynaMech\lib\site-packages\paho\mqtt\client.py", line 914, in connect
return self.reconnect()
File "C:\Users\DynaMech\lib\site-packages\paho\mqtt\client.py", line 1044, in reconnect
sock = self._create_socket_connection()
File "C:\Users\DynaMech\lib\site-packages\paho\mqtt\client.py", line 3685, in _create_socket_connection
return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
File "C:\Users\DynaMech\lib\site-packages\eventlet\green\socket.py", line 44, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 543, in getaddrinfo
qname, addrs = _getaddrinfo_lookup(host, family, flags)
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 516, in _getaddrinfo_lookup
raise err
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 505, in _getaddrinfo_lookup
answer = resolve(host, qfamily, False, use_network=use_network)
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 458, in resolve
raise EAI_EAGAIN_ERROR
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 505, in _getaddrinfo_lookup
answer = resolve(host, qfamily, False, use_network=use_network)
File "C:\Users\DynaMech\lib\site-packages\eventlet\support\greendns.py", line 458, in resolve
raise EAI_EAGAIN_ERROR
socket.gaierror: [Errno 11002] Lookup timed out
Process finished with exit code 1
import eventlet
import json
from flask import Flask, render_template
from flask_mqtt import Mqtt
from flask_socketio import SocketIO
from flask_bootstrap import Bootstrap
eventlet.monkey_patch()
app = Flask(__name__)
app.config['SECRET'] = 'my secret key'
app.config['TEMPLATES_AUTO_RELOAD'] = True
app.config['MQTT_BROKER_URL'] = 'localhost'
app.config['MQTT_BROKER_PORT'] = 1883
app.config['MQTT_CLIENT_ID'] = 'flask_mqtt'
app.config['MQTT_CLEAN_SESSION'] = True
app.config['MQTT_USERNAME'] = 'amirul***'
app.config['MQTT_PASSWORD'] = 'amirul***'
app.config['MQTT_KEEPALIVE'] = 1200
app.config['MQTT_TLS_ENABLED'] = False
app.config['MQTT_LAST_WILL_TOPIC'] = 'python2/mqtt'
app.config['MQTT_LAST_WILL_MESSAGE'] = 'python2/mqtt'
app.config['MQTT_LAST_WILL_QOS'] = 2
# Parameters for SSL enabled
# app.config['MQTT_BROKER_PORT'] = 8883
# app.config['MQTT_TLS_ENABLED'] = True
# app.config['MQTT_TLS_INSECURE'] = True
# app.config['MQTT_TLS_CA_CERTS'] = 'ca.crt'
mqtt = Mqtt(app)
socketio = SocketIO(app)
bootstrap = Bootstrap(app)
@app.route('/')
def index():
return render_template('index1.html')
@socketio.on('publish')
def handle_publish(json_str):
data = json.loads(json_str)
mqtt.publish(data['topic'], data['message'], data['qos'])
@socketio.on('subscribe')
def handle_subscribe(json_str):
data = json.loads(json_str)
mqtt.subscribe(data['topic'], data['qos'])
@socketio.on('unsubscribe_all')
def handle_unsubscribe_all():
mqtt.unsubscribe_all()
@mqtt.on_message()
def handle_mqtt_message(client, userdata, message):
data = dict(
topic=message.topic,
payload=message.payload.decode(),
qos=message.qos,
)
socketio.emit('mqtt_message', data=data)
@mqtt.on_log()
def handle_logging(client, userdata, level, buf):
# print(level, buf)
pass
if __name__ == '__main__':
socketio.run(app, host='127.0.0.1', port=5000, use_reloader=False, debug=True)