I am trying to connect to wss://ws.luno.com/api/1/stream/:pair
Instructions are at https://www.luno.com/en/api towards the bottom of the page
I have successfully run the accepted answer from Connecting to a secured websocket
However when I replace the url
String url = "wss://ws.luno.com/api/1/stream/:pair";//"wss://qa.sockets.stackexchange.com/";
and run again I get the following exeption
2018-10-06 12:07:08.690:WARN:twl.SecureClientSocket:WebSocketClient@1717159510-17:
org.eclipse.jetty.websocket.api.UpgradeException: 404 Not Found
at org.eclipse.jetty.websocket.client.WebSocketUpgradeRequest.onComplete(WebSocketUpgradeRequest.java:522)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:202)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:194)
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:470)
at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:416)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:316)
at org.eclipse.jetty.http.HttpParser.handleContentMessage(HttpParser.java:599)
at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1669)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1517)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:172)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:135)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:73)
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:133)
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:155)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:422)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:306)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:160)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)
at java.lang.Thread.run(Thread.java:748)
2018-10-06 12:07:08.696:WARN:twl.SecureClientSocket:main:
java.util.concurrent.ExecutionException: org.eclipse.jetty.websocket.api.UpgradeException: 404 Not Found
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
at trading.websocket.luno.SecureClientSocket.main(SecureClientSocket.java:32)
Caused by:
org.eclipse.jetty.websocket.api.UpgradeException: 404 Not Found
at org.eclipse.jetty.websocket.client.WebSocketUpgradeRequest.onComplete(WebSocketUpgradeRequest.java:522)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:202)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:194)
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:470)
at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:416)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:316)
at org.eclipse.jetty.http.HttpParser.handleContentMessage(HttpParser.java:599)
at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1669)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1517)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:172)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:135)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:73)
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:133)
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:155)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:422)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:306)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:160)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)
at java.lang.Thread.run(Thread.java:748)
Any suggestions would be welcome
To answer my own question, the websocket URL I was using is wrong, (wss://ws.luno.com/api/1/stream/:pair
). I needed to replace :pair
with the currency pair, e.g. XBTZAR
.