无法通过MQTT从React Native应用连接到在本地主机上工作的代理

时间:2019-10-26 21:59:02

标签: node.js react-native mqtt

我有以下问题:

我已经在本地主机服务器上创建了mqtt代理,这是代码:

const settings = {
  port: 1883
};

const server = new mosca.Server(settings);
let client

server.on("ready", function() {
  console.log("Mosca server is running on port 1883");
  client = mqtt.connect("mqtt://localhost:1883");
  client.on("connect", function() {
    client.subscribe("locateUser");
  });
  client.on("message", function(topic, message) {
    context = message.toString();
    console.log(context);
  });
});

当我尝试从本地主机连接到代理时,一切都正常工作并发送消息。但是我想从反应本机应用程序连接到代理,并且无法建立连接。这是用于连接的代码:

mqtt
      .createClient({
        uri: "mqtt://XXX.XXX.X.XX:1883"
      })
      .then(client => {
        console.log(client);
        this.client = client;
        client.on("closed", function() {
          console.log("mqtt.event.closed");
        });
        client.on("error", function(msg) {
          console.log("mqtt.event.error", msg);
        });
        client.on("message", function(msg) {
          console.log("mqtt.event.message", msg);
        });

        client.on("connect", function() {
          console.log("connected");
          client.subscribe("/data", 0);
          client.publish("/data", "test", 0, false);
        });

        client.connect();
      })
      .catch(function(err) {
        console.log(err, 60);
      });

我在接球时出错:

[TypeError: null is not an object (evaluating 'matches[2]')] 60

首先,尽管我有一个错误的LAN IP或类似问题。 但是我已经帮忙表达了REST API服务器,并测试了与REST API的连接-它工作正常,并且我可以看到对象从get请求发送给我。 您知道为什么它不起作用吗?

0 个答案:

没有答案