2017-05-31 2 views
0

Ich habe eine mqtt Client Verbindung zu einem Broker. Mein Broker abfangen Verbindung, um Token davon zu bekommen und einige Arbeiten zu tun. Ich möchte ein Token als Abfrageparameter beim Verbinden senden.Senden Sie Abfrageparameter mit Verbindung Apache Poho Websocket Client

meinen Klienten wie folgt verbinden:

 MqttAsyncClient sampleClient = new MqttAsyncClient(broker, clientId, persistence); 
     MqttConnectOptions connOpts = new MqttConnectOptions(); 

     connOpts.setCleanSession(false); 

     connOpts.setAutomaticReconnect(true); 
     connOpts.setKeepAliveInterval(MqttConnectOptions.KEEP_ALIVE_INTERVAL_DEFAULT); 

     connOpts.setConnectionTimeout(MqttConnectOptions.CONNECTION_TIMEOUT_DEFAULT); 
     IMqttToken token = sampleClient.connect(connOpts); 

Wie kann ich das tun? Könnte mir jemand helfen?

Antwort

0

Dies könnte möglich sein, wenn Sie die Methode sendHandshakeRequest in der Klasse ändern WebSocketHandshake:

private void sendHandshakeRequest(String key) throws IOException{ 

     pw.print("Upgrade: websocket" + LINE_SEPARATOR); 
     pw.print("Connection: Upgrade" + LINE_SEPARATOR); 
     pw.print("Sec-WebSocket-Key: " + key + LINE_SEPARATOR); 
     pw.print("Sec-WebSocket-Protocol: mqttv3.1" + LINE_SEPARATOR); 
     pw.print("Sec-WebSocket-Version: 13" + LINE_SEPARATOR); 

     // TODO add the header with your token here 

Da das Verfahren private und die Klasse ist in internal Paket, Sie haben keine andere Wahl, aber Ihre eigenen kompilieren Version der Paho-Bibliothek.

Verwandte Themen