Java Websocket立即关闭

时间:2017-01-13 22:27:19

标签: java exception websocket client

我正在尝试使用TooTallNate的Java-Websocket连接到OkCoin。我在某个地方找到了这个简单的代码示例,但我无法让它工作。连接立即关闭,因此呼叫mWs.send(...)会引发WebsocketNotConnectedException。我无法弄清楚为什么;到目前为止,我发现了许多类似的问题,其中没有一个有答案。

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.json.JSONObject;

import java.net.URI;
import java.net.URISyntaxException;

public class TestApp {

    public static void main(String[] args) {
        try {
            URI uri = new URI("wss://real.okcoin.cn:10440/websocket/okcoinapi");

            final WebSocketClient mWs = new WebSocketClient(uri) {
                @Override
                public void onMessage(String message) {
                    JSONObject obj = new JSONObject(message);
                }

                @Override
                public void onOpen(ServerHandshake handshake) {
                    System.out.println("opened connection");
                }

                @Override
                public void onClose(int code, String reason, boolean remote) {
                    System.out.println("closed connection");
                }

                @Override
                public void onError(Exception ex) {
                    ex.printStackTrace();
                }
            };

            mWs.connect();

            JSONObject obj = new JSONObject();
            obj.put("event", "addChannel");
            obj.put("channel", "ok_btccny_ticker");           

            mWs.send(obj.toString());

        } catch (URISyntaxException e) {
            System.err.println("URI not formatted correctly");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

使用mWs.connectBlocking()代替mWs.connect()不会自动关闭。

See