Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用连接apache paho websocket客户端发送查询参数_Java_Websocket_Activemq_Paho_Broker - Fatal编程技术网

Java 使用连接apache paho websocket客户端发送查询参数

Java 使用连接apache paho websocket客户端发送查询参数,java,websocket,activemq,paho,broker,Java,Websocket,Activemq,Paho,Broker,我有一个连接到代理的mqtt客户机。 我的代理拦截连接以从中获取令牌并执行一些工作。 我想在连接时发送一个令牌作为查询参数 MqttAsyncClient sampleClient = new MqttAsyncClient(broker, clientId, persistence); MqttConnectOptions connOpts = new MqttConnectOptions(); connOpts.setCleanSession

我有一个连接到代理的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);
我的客户是这样连接的:

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

我该怎么做?有人能帮我吗?

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

        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);
由于该方法是
private
,并且该类位于
internal
包中,因此您别无选择,只能编译您自己的自定义版本的Paho库

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