com.binance.connector.client.impl.websocketapi.WebSocketApiUserDataStream Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of binance-connector-java Show documentation
Show all versions of binance-connector-java Show documentation
lightweight connector to API
package com.binance.connector.client.impl.websocketapi;
import org.json.JSONObject;
import com.binance.connector.client.utils.JSONParser;
import com.binance.connector.client.utils.ParameterChecker;
import com.binance.connector.client.utils.websocketapi.WebSocketApiRequestHandler;
/**
* User Data Stream Requests
* All requests under the
* User Data Stream requests
* section of the WebSocket API documentation will be implemented in this class.
*
* Response will be returned as callback.
*/
public class WebSocketApiUserDataStream implements WebSocketApiModule {
private WebSocketApiRequestHandler handler;
public WebSocketApiUserDataStream(WebSocketApiRequestHandler handler) {
this.handler = handler;
}
/**
* Start a new user data stream.
*
* The response will output a listen key that can be subscribed through on the WebSocket stream afterwards.
*
* Note: the stream will close in 60 minutes unless userDataStream.ping requests are sent regularly.
*
* @param parameters JSONObject composed by key-value pairs:
*
* requestId -- optional/String or int
*
* @see
* https://binance-docs.github.io/apidocs/websocket_api/en/#start-user-data-stream-user_stream
*/
public void userDataStreamStart(JSONObject parameters) {
this.handler.apiRequest("userDataStream.start", parameters);
}
/**
* Ping a user data stream to keep it alive.
*
* User data streams close automatically after 60 minutes, even if you're listening to them on WebSocket Streams.
* In order to keep the stream open, you have to regularly send pings using the userDataStream.ping request.
* It is recommended to send a ping once every 30 minutes.
*
* Note: the stream will close in 60 minutes unless userDataStream.ping requests are sent regularly.
*
* @param listenKey -- required/String
* @param parameters JSONObject composed by key-value pairs:
*
* requestId -- optional/String or int
*
* @see
* https://binance-docs.github.io/apidocs/websocket_api/en/#ping-user-data-stream-user_stream
*/
public void userDataStreamPing(String listenKey, JSONObject parameters) {
ParameterChecker.checkParameterType(listenKey, String.class, "listenKey");
parameters = JSONParser.addKeyValue(parameters, "listenKey", listenKey);
this.handler.apiRequest("userDataStream.ping", parameters);
}
/**
* Explicitly stop and close the user data stream.
*
* @param listenKey -- required/String
* @param parameters JSONObject composed by key-value pairs:
*
* requestId -- optional/String or int
*
* @see
* https://binance-docs.github.io/apidocs/websocket_api/en/#stop-user-data-stream-user_stream
*/
public void userDataStreamStop(String listenKey, JSONObject parameters) {
ParameterChecker.checkParameterType(listenKey, String.class, "listenKey");
parameters = JSONParser.addKeyValue(parameters, "listenKey", listenKey);
this.handler.apiRequest("userDataStream.stop", parameters);
}
}