2016-08-22 2 views
1

Я использую клиент Android Paho. https://eclipse.org/paho/clients/java/Android MQTT - Paho Не поддерживает wss: //

Это, вероятно, идет в библиотеку MQTT на Android, но он не поддерживает безопасный WebSockets MQTT (WSS: //), давая мне IllegalArgument исключения для УИР сервера.

Я искал решение для подключения к MQTT WebSocket, который имеет WSS: // схема пути, и до сих пор есть только одна библиотека: https://github.com/inventit/mqtt-websocket-java

Что также не работает! Я получаю исключения Jetty SSL.

Если у вас есть реализация, которую вы использовали раньше, пожалуйста, поделитесь ими со мной, это заняло много времени, и я все еще не знаю, спасибо!

Для обеих библиотек я попытался использовать пример кода, который они предлагают в своих документах.

+0

Там нет реального вопроса здесь – hardillb

+1

@hardillb Вопроса в том, как подключиться к WebSocket MQTT на андроиде, так как текущие решения не работают? – Illinois47

ответ

0

Я думаю Pāho Android клиент не поддерживает WebSocket SSL, но вы можете использовать MqttAsyncClient вместо MqttAndroidClient так:

библиотеки одинаковы:

dependencies { 
    ... 
    compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0' 
    compile 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.0' 
    ... 
    } 

Использование MqttAsyncClient вместо MqttAndroidClient так:

private MqttAsyncClient mMqttAndroidClient; 
try { 
     mMqttAndroidClient = new MqttAsyncClient("wss://...", MqttClient.generateClientId(), new MemoryPersistence()); 
    } catch (MqttException e) { 
     e.printStackTrace(); 
    } 
0

Я использовал «WSS: //» без проблем. Сделать объект MqttAndroidClient со схемой и портом «ВОЙ» 443.

mqttConnectOptions = new MqttConnectOptions(); 
    mqttConnectOptions.setKeepAliveInterval(MqttConfig.KEEPALIVE); 
    mqttConnectOptions.setUserName("username"); 
    mqttConnectOptions.setPassword("pass"); 
    mqttConnectOptions.setCleanSession(false); 
    mqttConnectOptions.setAutomaticReconnect(true); 
    mqttConnectOptions.setMaxInflight(1024); 
    .. 
    uri="wss://broker.hivemq.com:443" 
    MqttAndroidClient client = new MqttAndroidClient(context, uri, clientId,persistence); 
    .. 
    getClient().connect(mqttConnectOptions,applicationContext,mqttActionListener; 
Смежные вопросы