Java 使用连接apache paho websocket客户端发送查询参数
我有一个连接到代理的mqtt客户机。 我的代理拦截连接以从中获取令牌并执行一些工作。 我想在连接时发送一个令牌作为查询参数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
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);