0

Coinigy websocket api を使用して、リアルタイム取引のストリームを取得しようとしています。

しかし、私はエラーが発生しています:

{"rid":2,"error":"接続されていますが、このソケットは認証されていません。資格情報ペイロードを含む認証イベントを発行してください。"} {"data":{"pingTimeout":20000,"id":" BltoRYWc7k1dYgeRAHm0","isAuthenticated":false},"rid":1}

私が使用しているコードは次のとおりです

import com.neovisionaries.ws.client.WebSocketException;
import com.neovisionaries.ws.client.WebSocketFrame;
import io.github.sac.*;

import java.util.List;
import java.util.Map;

import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;


public class Main {

    public static String url="wss://sc-02.coinigy.com/socketcluster/";

    public static void main(String arg[]) throws JSONException {

        Socket socket = new Socket(url);
        JSONObject obj = new JSONObject();
        obj.put("apiKey", "abd");
        obj.put("apiSecret", "efg");
        socket.setListener(new BasicListener() {

            public void onConnected(Socket socket,Map<String, List<String>> headers) {
                System.out.println("Connected to endpoint");
                socket.emit("auth", obj, new Ack() {
                    @Override
                    public void call(String eventName, Object error, Object data) {
                        System.out.println("Got message for :"+eventName+" error is :"+error+" data is :"+data);
                    }
                });
            }

            public void onDisconnected(Socket socket,WebSocketFrame serverCloseFrame, WebSocketFrame clientCloseFrame, boolean closedByServer) {
                System.out.println("Disconnected from end-point");
            }

            public void onConnectError(Socket socket,WebSocketException exception) {
                System.out.println("Got connect error "+ exception);
            }

            public void onSetAuthToken(String token, Socket socket) {
                System.out.println("Set auth token got called");
                socket.setAuthToken(token);
            }

            public void onAuthentication(Socket socket,Boolean status) {
                if (status) {
                    System.out.println("socket is authenticated");
                } else {
                    System.out.println("Authentication is required (optional)");
                }
            }

        });


       socket.setReconnection(new ReconnectStrategy().setDelay(3000).setMaxAttempts(10)); //Connect after each 2 seconds for 30 times

        socket.connect();

        Socket.Channel channel = socket.createChannel("xyz");
        channel.subscribe(new Ack() {
            @Override
            public void call(String channelName, Object error, Object data) {
                if (error==null){
                    System.out.println("Subscribed to channel "+channelName+" successfully");
                }
            }
        });

        channel.onMessage(new Emitter.Listener() {
            @Override
            public void call(String channelName, Object data) {

                System.out.println("Got message for channel "+channelName+" data is "+data);
            }
        });

        channel.unsubscribe(new Ack() {
            @Override
            public void call(String name, Object error, Object data) {
                System.out.println("Unsubscribed successfully");
            }
        });
        channel.unsubscribe();
    }
}
4

1 に答える 1