Hjälp med att lyssna på trade prices i public feed

Added by Joachim about 5 years ago

Hej

Jag har problem att få ihop meddelandet för att lyssna på en feed.

Jag försöker lyssna enligt exemplet på nordnet och tycker inte json ser fel ut.

public void getTrades() {
ObjectNode node = JsonNodeFactory.instance.objectNode();
node.put("cmd", "subscribe");
node.with("args").put("t", "price" ).put("i","1869").put("m", 30);
String cmd = node.toString();

//JerseyWebTarget { https://pub.api.test.nordnet.se:443 }
WebTarget publicFeed = ClientBuilder.newClient().target("https://" + publicHostname + ":" + privPortNo);

Response response = publicFeed.queryParam(cmd).request(responseType).post(null);
}

Fel:
Exception in thread "main" javax.ws.rs.ProcessingException: java.net.SocketException: Unexpected end of file from server
at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:229)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:224)

Det andra försöket ser ut såhär, men genererar samma fel. Dock lyssnar det på en stream som antagligen är lite bättre. Är det baseURL som är fel satt?

String charset = "UTF-8"; 
URLConnection connection = new URL("https://" publicHostname":"+privPortNo).openConnection();
connection.setDoOutput(true); // Triggers POST.
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Content-Type", "application/json;charset=" + charset);
try (OutputStream output = connection.getOutputStream()) {
output.write(cmd.getBytes(charset));
}
InputStream resp = connection.getInputStream();

Exception in thread "main" java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:792)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:789)


Replies (6)

RE: Hjälp med att lyssna på trade prices i public feed - Added by Nordnet Simon about 5 years ago

Det ser ut som om du försöker göra någon form av HTTP anrop till feederna.

Det är ren TCP kommunikation så du ska öppna en SSL socket och skicka login meddelandet som ren JSON avslutat med newline. Sen kommer meddelandena från feeden som ren JSON. Det är alltså ingen HTTP inblandad alls i feederna.

RE: Hjälp med att lyssna på trade prices i public feed - Added by Joachim about 5 years ago

Det hjälpte ju en hel del för att få kontakt med servern. Finns det något cmd jag kan göra alltid (vilken tid som helst på dygnat) som jag vet kommer att generera ett response som inte är ett hearbeat?

Somn läget är nu så får jag {"cmd":"login","args":{"session_key":"my fantastic keyxxxxxx"}}

login response: {"type":"heartbeat","data":{}} {"cmd":"subscribe","args":{"t":"price","i":"1869","m":30}}

json: null

RE: Hjälp med att lyssna på trade prices i public feed - Added by Nordnet Simon about 5 years ago

Prenumerera på Ericsson B så får du priser. Efter stängning så får du ett pristick som innehåller stängningskursen.

{"cmd":"subscribe","args":{"t":"price","i":"101","m":11}}

Glöm inte newline efter subscribe meddelandet.

RE: Hjälp med att lyssna på trade prices i public feed - Added by Petter about 5 years ago

Om jag fattat rätt så kan jag enbart testa på Eric B i testsystemet, men att jag får tillgång till feeds för allt annat i produktion? Servern verkar hålla tyst i andra fall, så att säga. (Skulle egentligen vilja se OMX30, till att börja med.)

RE: Hjälp med att lyssna på trade prices i public feed - Added by Petter about 5 years ago

Vilket jag kan tillägga är problematiskt då jag isåfall enbart kommer kunna testa hela min applikation först i produktionsmiljön...

RE: Hjälp med att lyssna på trade prices i public feed - Added by Nordnet Aleksandar about 5 years ago

Hej Petter.

Du kan prenumerera på alla papper från nordiska Nasdaq OMX marknader.
Dock är det så att aktiviteten är låg i testmiljön jämfört med produktion, därav rekommenderar vi Eric B för det är pappret som det brukar vara mest fart på.

(1-6/6)