0
I am using javax.websockets to have a webSocket connection with Blockchain.info, except that it closes down after random intervals, and I can see the close reason as:
'Unexpected end of stream', Error Code = 1006.
I am not able to figure out why this occurs. Here is the code:
private void initializeWebSocketSession(Session session)
{
WebSocketContainer container container = ContainerProvider.getWebSocketContainer();
Session session = container.connectToServer(BlockchainWebSocketClient.class, URI.create("wss://ws.blockchain.info/inv"));
}
public void onOpen(Session session) throws IOException
{
session.setMaxIdleTimeout(0);
session.getBasicRemote().sendText("{\"op\":\"unconfirmed_sub\"}");
}
@OnMessage
public void onMessage(String message, boolean isLastPartOfMessage)
{
// Some logic
}
Quoting RFC 6455:
– Nick ODell – 2015-01-19T07:47:46.2401006 is [...] designated for use in applications expecting a status code to indicate that the connection was closed abnormally, e.g., without sending or receiving a Close control frame.It sounds like your connection to blockchain.info is dropping occasionally. If you useping -t blockchain.info, are some packets dropped?Sending a ping message after every 30 seconds to the server endpoint did the trick. But now I get the issue 'Connection reset by peer', same closing code. Thanks for the answer btw. – Waqas Shah – 2015-01-20T13:19:45.567
@NickODell: Perhaps you could make that comment an answer? – Murch – 2017-06-20T05:25:04.147
@Murch I don't think it solved his problem. It sounds like he's just getting TCP RST's now. – Nick ODell – 2017-06-20T15:21:26.023