0

この JS を介して Mosquitto サーバーに接続しようとすると、次のエラーが表示されます。

WebSocket connection to 'ws://xx.xxx.xxx.xxx:1883/mqtt' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET 

コンソールから試してみましたが、正常に動作します。Java クライアントをプロバイダーおよびコンシューマーとして試してみましたが、正常に動作します。だから私はそれを機能させるために何をすべきか理解できません。

これはJSです:

client = new Paho.MQTT.Client("xx.xxx.xxx.xxx", 1883, "clientId");

client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;

// connect the client
client.connect({onSuccess:onConnect});

これはJavaです(動作中):

@Stateless
@LocalBean
public class PahoManager implements MqttCallback {

  MqttClient client;

  public void init() {
      try {
          client = new MqttClient("tcp://192.168.50.10:1883", "pahomqttpublish1");

          client.connect();
          client.subscribe("pahodemo/test");
      } catch (MqttException e) {
          e.printStackTrace();
      }
  }    

  public void doDemo()  {
    try {

      MqttMessage message = new MqttMessage();
      message.setPayload("Ciao Pluto".getBytes());
      client.publish("pahodemo/test", message);

      //client.disconnect();
    } catch (MqttException e) {
      e.printStackTrace();
    }
  }

    @Override
    public void connectionLost(Throwable thrwbl) {
        System.out.println("Connection Lost");
    }

    @Override
    public void messageArrived(String string, MqttMessage mm) throws Exception {
        System.out.println("Message: " + string + mm);
    }

    @Override
    public void deliveryComplete(IMqttDeliveryToken imdt) {
        System.out.println("Message delivered");
    }
}
4

2 に答える 2

1

WebSocket をサポートするには、Mosquitto バージョン 1.4 を使用する必要があります。これはまだリリースされていませんが、自分でビルドできます。ソースはここから入手できます:

https://bitbucket.org/oojah/mosquitto/branch/1.4

もう 1 つのオプションは、MQTT ブリッジへの Websocket を実行することです。ここで説明されている lighttpd モジュールを使用できます。

http://test.mosquitto.org/ws.html

于 2014-11-21T10:22:23.850 に答える