Package org.zeromq
Class ZBeacon
- java.lang.Object
-
- org.zeromq.ZBeacon
-
public class ZBeacon extends java.lang.Object
This class implements a peer-to-peer discovery service for local networks. A beacon can broadcast and/or capture service announcements using UDP messages on the local area network. This implementation uses IPv4 UDP broadcasts. You can define the format of your outgoing beacons, and set a filter that validates incoming beacons. Beacons are sent and received asynchronously in the background.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
ZBeacon.BroadcastClient
The broadcast client periodically sends beacons via UDP to the network.private class
ZBeacon.BroadcastServer
The broadcast server receives beacons.static class
ZBeacon.Builder
static interface
ZBeacon.Listener
All beacons with matching prefix are passed to a listener.
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicReference<byte[]>
beacon
private ZBeacon.BroadcastClient
broadcastClient
private java.util.concurrent.atomic.AtomicLong
broadcastInterval
private ZBeacon.BroadcastServer
broadcastServer
private java.util.concurrent.atomic.AtomicReference<java.lang.Thread.UncaughtExceptionHandler>
clientExHandler
private static java.net.InetAddress
DEFAULT_BROADCAST_ADDRESS
static java.lang.String
DEFAULT_BROADCAST_HOST
private static java.net.InetAddress
DEFAULT_BROADCAST_HOST_ADDRESS
static long
DEFAULT_BROADCAST_INTERVAL
private java.util.concurrent.atomic.AtomicReference<ZBeacon.Listener>
listener
private java.util.concurrent.atomic.AtomicReference<byte[]>
prefix
private java.util.concurrent.atomic.AtomicReference<java.lang.Thread.UncaughtExceptionHandler>
serverExHandler
-
Constructor Summary
Constructors Constructor Description ZBeacon(int port, byte[] beacon)
ZBeacon(java.lang.String broadcastAddress, byte[] serverAddress, int port, byte[] beacon, long broadcastInterval, boolean ignoreLocalAddress, boolean blocking)
Deprecated.ZBeacon(java.lang.String host, int port, byte[] beacon)
ZBeacon(java.lang.String host, int port, byte[] beacon, boolean ignoreLocalAddress)
ZBeacon(java.lang.String host, int port, byte[] beacon, boolean ignoreLocalAddress, boolean blocking)
ZBeacon(java.net.InetAddress broadcastAddress, java.net.InetAddress serverAddress, int port, byte[] beacon, long broadcastInterval, boolean ignoreLocalAddress, boolean blocking)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description byte[]
getBeacon()
long
getBroadcastInterval()
ZBeacon.Listener
getListener()
byte[]
getPrefix()
void
setBeacon(byte[] beacon)
Deprecated.use the buildervoid
setBroadcastInterval(long broadcastInterval)
void
setListener(ZBeacon.Listener listener)
Deprecated.use the buildervoid
setPrefix(byte[] prefix)
Deprecated.use the buildervoid
setUncaughtExceptionHandlers(java.lang.Thread.UncaughtExceptionHandler clientExHandler, java.lang.Thread.UncaughtExceptionHandler serverExHandler)
Deprecated.use the buildervoid
start()
void
startClient()
void
startServer()
void
stop()
-
-
-
Field Detail
-
DEFAULT_BROADCAST_INTERVAL
public static final long DEFAULT_BROADCAST_INTERVAL
- See Also:
- Constant Field Values
-
DEFAULT_BROADCAST_HOST
public static final java.lang.String DEFAULT_BROADCAST_HOST
- See Also:
- Constant Field Values
-
DEFAULT_BROADCAST_HOST_ADDRESS
private static final java.net.InetAddress DEFAULT_BROADCAST_HOST_ADDRESS
-
DEFAULT_BROADCAST_ADDRESS
private static final java.net.InetAddress DEFAULT_BROADCAST_ADDRESS
-
broadcastClient
private final ZBeacon.BroadcastClient broadcastClient
-
broadcastServer
private final ZBeacon.BroadcastServer broadcastServer
-
prefix
private final java.util.concurrent.atomic.AtomicReference<byte[]> prefix
-
beacon
private final java.util.concurrent.atomic.AtomicReference<byte[]> beacon
-
broadcastInterval
private final java.util.concurrent.atomic.AtomicLong broadcastInterval
-
listener
private final java.util.concurrent.atomic.AtomicReference<ZBeacon.Listener> listener
-
clientExHandler
private final java.util.concurrent.atomic.AtomicReference<java.lang.Thread.UncaughtExceptionHandler> clientExHandler
-
serverExHandler
private final java.util.concurrent.atomic.AtomicReference<java.lang.Thread.UncaughtExceptionHandler> serverExHandler
-
-
Constructor Detail
-
ZBeacon
public ZBeacon(int port, byte[] beacon)
-
ZBeacon
public ZBeacon(java.lang.String host, int port, byte[] beacon)
-
ZBeacon
public ZBeacon(java.lang.String host, int port, byte[] beacon, boolean ignoreLocalAddress)
-
ZBeacon
public ZBeacon(java.lang.String host, int port, byte[] beacon, boolean ignoreLocalAddress, boolean blocking)
-
ZBeacon
public ZBeacon(java.net.InetAddress broadcastAddress, java.net.InetAddress serverAddress, int port, byte[] beacon, long broadcastInterval, boolean ignoreLocalAddress, boolean blocking)
-
ZBeacon
@Deprecated public ZBeacon(java.lang.String broadcastAddress, byte[] serverAddress, int port, byte[] beacon, long broadcastInterval, boolean ignoreLocalAddress, boolean blocking)
Deprecated.
-
-
Method Detail
-
setUncaughtExceptionHandlers
@Deprecated public void setUncaughtExceptionHandlers(java.lang.Thread.UncaughtExceptionHandler clientExHandler, java.lang.Thread.UncaughtExceptionHandler serverExHandler)
Deprecated.use the builder- Parameters:
clientExHandler
-serverExHandler
-
-
startClient
public void startClient()
-
startServer
public void startServer()
-
start
public void start()
-
stop
public void stop() throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
setBeacon
@Deprecated public void setBeacon(byte[] beacon)
Deprecated.use the builder- Parameters:
beacon
-
-
getBeacon
public byte[] getBeacon()
-
setPrefix
@Deprecated public void setPrefix(byte[] prefix)
Deprecated.use the builder- Parameters:
prefix
-
-
getPrefix
public byte[] getPrefix()
-
setListener
@Deprecated public void setListener(ZBeacon.Listener listener)
Deprecated.use the builder- Parameters:
listener
-
-
getListener
public ZBeacon.Listener getListener()
-
getBroadcastInterval
public long getBroadcastInterval()
-
setBroadcastInterval
public void setBroadcastInterval(long broadcastInterval)
-
-