создание соединения websockects на местном брокере комаров - PullRequest
0 голосов
/ 20 июня 2020
• 1000 ошибка: ConnectionRefusedError: [Errno 111] Connection refused

Как я могу sh установить соединение через веб-сокеты. онлайн-брокер test.mosquitto.org работает.

Мой сценарий браузера для прослушивания

<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js" type="text/javascript"></script>
    <script type="text/javascript" language="javascript">
        var mqtt;
        var reconnectTimeout = 2000;
        var host = "localhost";
        var port = 9000;

        function onFailure(message) {
            console.log("Connection Attempt to Host " + host + "Failed");
            setTimeout(MQTTconnect, reconnectTimeout);
        }
        function onMessageArrived(msg) {
            out_msg = "Message received " + msg.payloadString + "<br>";
            out_msg = out_msg + "Message received Topic " + msg.destinationName;
            console.log(out_msg);

        }

        function onConnect() {
            mqtt.subscribe("bruv");
            console.log("Connected ");
        }
        function MQTTconnect() {
            console.log("connecting to " + host + " " + port);
            mqtt = new Paho.MQTT.Client(host, port, "");
            var options = {
                timeout: 3,
                onSuccess: onConnect,
                onFailure: onFailure,
            };
            mqtt.onMessageArrived = onMessageArrived

            mqtt.connect(options); //connect
        }

    </script>
    <script>
        MQTTconnect();
    </script>

Мой брокер

mosquito брокер с настройками по умолчанию

Публикация сообщений

import paho.mqtt.client as mqtt
import json
from datetime import datetime
import time

input_file = open('./data/bus1.json')
json_array = json.load(input_file)
coordinates = json_array['features'][0]['geometry']['coordinates']

client = mqtt.Client(transport='websockets')
client.connect('localhost', 8080, 60)

# Generate all coordinates
def generate_coordinates(coordinates):
    # new_coordinates = []
    i = 0
    while i < len(coordinates):
        data = {}
        data['busline'] = 201
        data['plate'] = 'RAB5674'
        data['time_stamp'] = str(datetime.utcnow())
        data['longitude'] = coordinates[i][0]
        data['latitude'] = coordinates[i][1]
        message = json.dumps(data)
        client.publish('busline/201', message)

        # producer.produce(message.encode('ascii'))
        time.sleep(1)

        # If buses reaches last coordinaates
        if i == len(coordinates)-1:
            coordinates = coordinates[::-1]
            i = 0
        else:
            i += 1
    # return new_coordinates


generate_coordinates(coordinates)

ошибка

Traceback (most recent call last):
  File "example.py", line 30, in <module>
    mqttc.connect("localhost", 8080, 60)
  File "/home/bihire/.local/lib/python3.6/site-packages/paho/mqtt/client.py", line 937, in connect
    return self.reconnect()
  File "/home/bihire/.local/lib/python3.6/site-packages/paho/mqtt/client.py", line 1071, in reconnect
    sock = self._create_socket_connection()
  File "/home/bihire/.local/lib/python3.6/site-packages/paho/mqtt/client.py", line 3522, in _create_socket_connection
    return socket.create_connection(addr, source_address=source, timeout=self._keepalive)
  File "/usr/lib/python3.6/socket.py", line 724, in create_connection
    raise err
  File "/usr/lib/python3.6/socket.py", line 713, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
...