how to run this flask_mqtt flask_socketio in pycharm?

Viewed 34

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)
0 Answers
Related