2017-05-31 15 views
0

私はブローカに接続するmqttクライアントを持っています。 私のブローカーは、そこからトークンを取得していくつかの作業を行うために接続を傍受します。 接続するときに、クエリのパラメータとしてトークンを送信します。接続パラメータ付きのパラメータを送信apache paho websocket client

私のクライアントは、次のように接続します。

 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); 

私はこれをどのように行うことができますか?誰か助けてくれますか?

答えて

0

これは、あなたがクラスWebSocketHandshake方法sendHandshakeRequestを変更する場合に可能であるかもしれない:メソッドがprivateで、クラスがinternalパッケージ内にあるので、あなたは他の選択肢を持っていない

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 

が、独自のカスタムをコンパイルPahoライブラリのバージョン。

関連する問題