/*
* Copyright (c) 2011-2015 The original author or authors
* ------------------------------------------------------
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php
*
* You may elect to redistribute this code under either of these licenses.
*/
package io.vertx.ext.stomp;
import javax.net.ssl.SSLSession;
import io.vertx.codegen.annotations.Fluent;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.Handler;
import io.vertx.core.buffer.Buffer;
Class representing a connection between a STOMP client a the server. It keeps a references on the client socket,
so let write to this socket.
Author: Clement Escoffier
/**
* Class representing a connection between a STOMP client a the server. It keeps a references on the client socket,
* so let write to this socket.
*
* @author <a href="http://escoffier.me">Clement Escoffier</a>
*/
@VertxGen
public interface StompServerConnection {
Writes the given frame to the socket.
Params: - frame – the frame, must not be
null
.
Returns: the current StompServerConnection
/**
* Writes the given frame to the socket.
*
* @param frame the frame, must not be {@code null}.
* @return the current {@link StompServerConnection}
*/
@Fluent
StompServerConnection write(Frame frame);
Writes the given buffer to the socket. This is a low level API that should be used carefully.
Params: - buffer – the buffer
Returns: the current StompServerConnection
/**
* Writes the given buffer to the socket. This is a low level API that should be used carefully.
*
* @param buffer the buffer
* @return the current {@link StompServerConnection}
*/
@Fluent
StompServerConnection write(Buffer buffer);
Returns: the STOMP server serving this connection.
/**
* @return the STOMP server serving this connection.
*/
StompServer server();
Returns: SSLSession associated with the underlying socket. Returns null if connection is
not SSL.
/**
* @return SSLSession associated with the underlying socket. Returns null if connection is
* not SSL.
*/
@GenIgnore({"permitted-type"})
SSLSession sslSession();
Returns: the STOMP server handler dealing with this connection
/**
* @return the STOMP server handler dealing with this connection
*/
StompServerHandler handler();
Returns: the STOMP session id computed when the client has established the connection to the server
/**
* @return the STOMP session id computed when the client has established the connection to the server
*/
String session();
Closes the connection with the client.
/**
* Closes the connection with the client.
*/
void close();
Sends a `PING` frame to the client. A `PING` frame is a frame containing only EOL
. /**
* Sends a `PING` frame to the client. A `PING` frame is a frame containing only {@code EOL}.
*/
void ping();
Notifies the connection about server activity (the server has sent a frame). This method is used to handle the
heartbeat.
/**
* Notifies the connection about server activity (the server has sent a frame). This method is used to handle the
* heartbeat.
*/
void onServerActivity();
Configures the heartbeat.
Params: - ping – ping time
- pong – pong time
- pingHandler – the ping handler
/**
* Configures the heartbeat.
* @param ping ping time
* @param pong pong time
* @param pingHandler the ping handler
*/
void configureHeartbeat(long ping, long pong, Handler<StompServerConnection> pingHandler);
}