|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jgroups.stack.Protocol
org.jgroups.protocols.STOMP
public class STOMP
Protocol which provides STOMP (http://stomp.codehaus.org/) support. Very simple implementation, with a one-thread-per-connection model. Use for a few hundred clients max.
The intended use for this protocol is pub-sub with clients which handle text messages, e.g. stock updates, SMS messages to mobile clients, SNMP traps etc.
Note that the full STOMP protocol has not yet been implemented, e.g. transactions are not supported. todo: use a thread pool to handle incoming frames and to send messages to clients
todo: add PING to test health of client connections
Nested Class Summary | |
---|---|
static class |
STOMP.ClientVerb
|
class |
STOMP.Connection
Class which handles a connection to a client |
static class |
STOMP.Frame
|
static class |
STOMP.ServerVerb
|
static class |
STOMP.StompHeader
|
Field Summary | |
---|---|
protected java.lang.Thread |
acceptor
|
protected java.net.InetAddress |
bind_addr
|
protected java.util.List<STOMP.Connection> |
connections
|
protected java.lang.String |
endpoint
|
protected java.lang.String |
endpoint_addr
|
protected java.util.Map<Address,java.lang.String> |
endpoints
|
protected boolean |
exact_destination_match
|
protected boolean |
forward_non_client_generated_msgs
|
protected Address |
local_addr
|
static byte |
NULL_BYTE
|
protected int |
port
|
protected boolean |
send_info
|
protected java.net.ServerSocket |
srv_sock
|
protected java.util.concurrent.ConcurrentMap<java.lang.String,java.util.Set<STOMP.Connection>> |
subscriptions
|
protected View |
view
|
Fields inherited from class org.jgroups.stack.Protocol |
---|
down_prot, ergonomics, id, log, name, stack, stats, up_prot |
Constructor Summary | |
---|---|
STOMP()
|
Method Summary | |
---|---|
protected void |
broadcastEndpoint()
|
java.lang.Object |
down(Event evt)
An event is to be sent down the stack. |
protected java.lang.String |
getAllEndpoints()
|
java.lang.String |
getEndpoints()
|
int |
getNumConnections()
|
int |
getNumSubscriptions()
|
java.lang.String |
getSubscriptions()
|
protected void |
handleView(View view)
|
static STOMP.Frame |
readFrame(java.io.DataInputStream in)
|
void |
run()
|
void |
start()
This method is called on a Channel.connect(String) . |
void |
stop()
This method is called on a Channel.disconnect() . |
java.lang.Object |
up(Event evt)
An event was received from the layer below. |
Methods inherited from class org.jgroups.stack.Protocol |
---|
destroy, dumpStats, enableStats, getConfigurableObjects, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getName, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, init, isErgonomics, printStats, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, resetStatistics, resetStats, setDownProtocol, setErgonomics, setId, setLevel, setProtocolStack, setSocketFactory, setUpProtocol, setValue, setValues, statsEnabled |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected java.net.InetAddress bind_addr
protected java.lang.String endpoint_addr
protected int port
protected boolean exact_destination_match
protected boolean send_info
protected boolean forward_non_client_generated_msgs
protected Address local_addr
protected java.net.ServerSocket srv_sock
protected java.lang.String endpoint
protected java.lang.Thread acceptor
protected final java.util.List<STOMP.Connection> connections
protected final java.util.Map<Address,java.lang.String> endpoints
protected View view
protected final java.util.concurrent.ConcurrentMap<java.lang.String,java.util.Set<STOMP.Connection>> subscriptions
public static final byte NULL_BYTE
Constructor Detail |
---|
public STOMP()
Method Detail |
---|
public int getNumConnections()
public int getNumSubscriptions()
public java.lang.String getSubscriptions()
public java.lang.String getEndpoints()
public void start() throws java.lang.Exception
Protocol
Channel.connect(String)
. Starts work.
Protocols are connected and queues are ready to receive events.
Will be called from bottom to top. This call will replace
the START and START_OK events.
start
in class Protocol
java.lang.Exception
- Thrown if protocol cannot be started successfully. This will cause the ProtocolStack
to fail, so Channel.connect(String)
will throw an exceptionpublic void stop()
Protocol
Channel.disconnect()
. Stops work (e.g. by closing multicast socket).
Will be called from top to bottom. This means that at the time of the method invocation the
neighbor protocol below is still working. This method will replace the
STOP, STOP_OK, CLEANUP and CLEANUP_OK events. The ProtocolStack guarantees that
when this method is called all messages in the down queue will have been flushed
stop
in class Protocol
public void run()
run
in interface java.lang.Runnable
public java.lang.Object down(Event evt)
Protocol
down_prot.down()
. In case of a GET_ADDRESS event (which tries to
retrieve the stack's address from one of the bottom layers), the layer may need to send
a new response event back up the stack using up_prot.up()
.
down
in class Protocol
public java.lang.Object up(Event evt)
Protocol
down_prot.down()
or c) the event (or another event) is sent up
the stack using up_prot.up()
.
up
in class Protocol
public static STOMP.Frame readFrame(java.io.DataInputStream in) throws java.io.IOException
java.io.IOException
protected void handleView(View view)
protected java.lang.String getAllEndpoints()
protected void broadcastEndpoint()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |