All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage Maven / Gradle / Ivy

There is a newer version: 12.0.13
Show newest version
//
// ========================================================================
// Copyright (c) 1995 Mort Bay Consulting Pty Ltd and others.
//
// This program and the accompanying materials are made available under the
// terms of the Eclipse Public License v. 2.0 which is available at
// https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
// which is available at https://www.apache.org/licenses/LICENSE-2.0.
//
// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
// ========================================================================
//

package org.eclipse.jetty.websocket.api.annotations;

import java.io.InputStream;
import java.io.Reader;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 

Annotation for methods to receive BINARY or TEXT WebSocket events.

*

Acceptable method patterns:

* Text Message Versions *
    *
  1. {@code public void methodName(String text)}
  2. *
  3. {@code public void methodName(Session session, String text)}
  4. *
  5. {@code public void methodName(Reader reader)}
  6. *
  7. {@code public void methodName(Session session, Reader reader)}
  8. *
*

NOTE

*

Method that takes a {@link Reader} must have * {@link WebSocket#autoDemand()} set to {@code true}.

*

NOTE

*

The {@link Reader} argument will always use the UTF-8 charset, * (as dictated by RFC 6455). If you need to use a different charset, * you must use BINARY messages.

* Binary Message Versions *
    *
  1. {@code public void methodName(ByteBuffer message, Callback callback)}
  2. *
  3. {@code public void methodName(Session session, ByteBuffer message, Callback callback)}
  4. *
  5. {@code public void methodName(InputStream stream)}
  6. *
  7. {@code public void methodName(Session session, InputStream stream)}
  8. *
*

NOTE

*

Method that takes a {@link InputStream} must have * {@link WebSocket#autoDemand()} set to {@code true}.

* Partial Message Variations *

These are used to receive individual frames (and therefore partial * messages) without aggregating the frames into a complete WebSocket message. * A {@code boolean} parameter is supplied to indicate whether the frame is * the last segment of data of the message.

*
    *
  1. {@code public void methodName(ByteBuffer payload, boolean last, Callback callback)}
  2. *
  3. {@code public void methodName(Session session, ByteBuffer payload, boolean last, Callback callback)}
  4. *
  5. {@code public void methodName(String payload, boolean last)}
  6. *
  7. {@code public void methodName(Session session, String payload, boolean last)}
  8. *
*/ @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface OnWebSocketMessage { }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy