使用连接Apache Paho Websocket客户端发送查询参数



我有一个连接到代理的MQTT客户端。我的经纪人拦截连接以从中获得令牌并进行一些工作。我想在连接时发送令牌作为查询参数。

我的客户这样连接:

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

我该怎么做?有人可以帮我吗?

如果您修改了类Websockethandshake中的方法sendHandshakeRequest,则可能是可能的:

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

由于该方法为private,并且该类位于internal软件包中,因此您别无选择,只能编译您自己的自定义版本的PAHO库。

相关内容

  • 没有找到相关文章

最新更新