Example usage for com.google.gwt.websockets.client WebSocketCallback WebSocketCallback

List of usage examples for com.google.gwt.websockets.client WebSocketCallback WebSocketCallback

Introduction

In this page you can find the example usage for com.google.gwt.websockets.client WebSocketCallback WebSocketCallback.

Prototype

WebSocketCallback

Source Link

Usage

From source file:org.waveprotocol.box.webclient.client.WaveSocketFactory.java

License:Apache License

/**
 * Create a WaveSocket instance that wraps a concrete socket implementation.
 * If useWebSocketAlt is true an instance of {@link org.waveprotocol.box.webclient.client.atmosphere.AtmosphereConnection}
 * is wrapped, otherwise an instance of {@link com.google.gwt.websockets.client.WebSocket} is
 * wrapped./*from   www. ja va  2  s.c o m*/
 */
public static WaveSocket create(boolean useWebSocketAlt, final String urlBase,
        final WaveSocket.WaveSocketCallback callback) {
    if (useWebSocketAlt) {
        return new WaveSocket() {

            private final AtmosphereConnection socket = new AtmosphereConnectionImpl(
                    new AtmosphereConnectionListener() {

                        @Override
                        public void onConnect() {
                            callback.onConnect();
                        }

                        @Override
                        public void onDisconnect() {
                            callback.onDisconnect();
                        }

                        @Override
                        public void onMessage(String message) {
                            callback.onMessage(message);
                        }
                    }, urlBase);

            @Override
            public void connect() {
                socket.connect();

            }

            @Override
            public void disconnect() {
                socket.close();
            }

            @Override
            public void sendMessage(String message) {
                socket.sendMessage(message);
            }

        };

    } else {
        return new WaveSocket() {
            final WebSocket socket = new WebSocket(new WebSocketCallback() {
                @Override
                public void onConnect() {
                    callback.onConnect();
                }

                @Override
                public void onDisconnect() {
                    callback.onDisconnect();
                }

                @Override
                public void onMessage(String message) {
                    callback.onMessage(message);
                }
            });

            @Override
            public void connect() {
                socket.connect(urlBase + "socket");
            }

            @Override
            public void disconnect() {
                socket.close();
            }

            @Override
            public void sendMessage(String message) {
                socket.send(message);
            }
        };
    }
}

From source file:org.waveprotocol.wave.examples.client.webclient.client.WaveWebSocketClient.java

License:Apache License

public WaveWebSocketClient(final WaveWebSocketCallback callback) {
    submitRequestCallbacks = new HashMap<Integer, SubmitResponseCallback>();
    WebSocketCallback wsCallback = new WebSocketCallback() {

        public void onConnect() {
            connected = ConnectState.CONNECTED;
            callback.connected();/*  w ww  . j ava 2 s  .com*/
        }

        public void onDisconnect() {
            connected = ConnectState.DISCONNECTED;
            callback.disconnected();
        }

        public void onMessage(final String message) {
            LOG.info("received JSON message " + message);
            JSONValue json = JSONParser.parse(message);
            // TODO(arb): pull apart the wrapper, extract the message.
            JSONObject wrapper = json.isObject();
            String messageType = wrapper.get("messageType").isString().stringValue();
            String payload = wrapper.get("messageJson").isString().stringValue();
            if (messageType.equals("ProtocolWaveletUpdate")) {
                ProtocolWaveletUpdate payloadMessage = ProtocolWaveletUpdate.parse(payload);
                callback.handleWaveletUpdate(payloadMessage);
            } else if (messageType.equals("ProtocolSubmitResponse")) {
                ProtocolSubmitResponse payloadMessage = ProtocolSubmitResponse.parse(payload);
                SubmitResponseCallback submitCallback = submitRequestCallbacks
                        .get((int) wrapper.get("sequenceNumber").isNumber().doubleValue());
                submitCallback.run(payloadMessage);
            }
        }
    };

    client = new WebSocket(wsCallback);
}